package utils import ( "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/specs-actors/actors/abi" "github.com/filecoin-project/specs-actors/actors/abi/big" "github.com/filecoin-project/specs-actors/actors/builtin/market" peer "github.com/libp2p/go-libp2p-core/peer" "github.com/multiformats/go-multiaddr" "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-fil-markets/storagemarket" ) func NewStorageProviderInfo(address address.Address, miner address.Address, sectorSize abi.SectorSize, peer peer.ID, addrs []abi.Multiaddrs) storagemarket.StorageProviderInfo { multiaddrs := make([]multiaddr.Multiaddr, 0, len(addrs)) for _, a := range addrs { maddr, err := multiaddr.NewMultiaddrBytes(a) if err != nil { return storagemarket.StorageProviderInfo{} } multiaddrs = append(multiaddrs, maddr) } return storagemarket.StorageProviderInfo{ Address: address, Worker: miner, SectorSize: uint64(sectorSize), PeerID: peer, Addrs: multiaddrs, } } func FromOnChainDeal(prop market.DealProposal, state market.DealState) storagemarket.StorageDeal { return storagemarket.StorageDeal{ DealProposal: prop, DealState: state, } } func ToSharedBalance(bal api.MarketBalance) storagemarket.Balance { return storagemarket.Balance{ Locked: bal.Locked, Available: big.Sub(bal.Escrow, bal.Locked), } }