diff --git a/markets/storageadapter/client.go b/markets/storageadapter/client.go index 27589aaa0..e9da4e532 100644 --- a/markets/storageadapter/client.go +++ b/markets/storageadapter/client.go @@ -14,15 +14,6 @@ import ( cborutil "github.com/filecoin-project/go-cbor-util" "github.com/filecoin-project/go-fil-markets/shared" "github.com/filecoin-project/go-fil-markets/storagemarket" - "github.com/filecoin-project/specs-actors/actors/abi" - "github.com/filecoin-project/specs-actors/actors/builtin" - samarket "github.com/filecoin-project/specs-actors/actors/builtin/market" - "github.com/filecoin-project/specs-actors/actors/builtin/miner" - "github.com/filecoin-project/specs-actors/actors/crypto" - "github.com/filecoin-project/specs-actors/actors/runtime/exitcode" - "github.com/ipfs/go-cid" - "github.com/multiformats/go-multiaddr" - "github.com/filecoin-project/lotus/build" "github.com/filecoin-project/lotus/chain/events" "github.com/filecoin-project/lotus/chain/market" @@ -32,6 +23,13 @@ import ( "github.com/filecoin-project/lotus/lib/sigs" "github.com/filecoin-project/lotus/markets/utils" "github.com/filecoin-project/lotus/node/impl/full" + "github.com/filecoin-project/specs-actors/actors/abi" + "github.com/filecoin-project/specs-actors/actors/builtin" + samarket "github.com/filecoin-project/specs-actors/actors/builtin/market" + "github.com/filecoin-project/specs-actors/actors/builtin/miner" + "github.com/filecoin-project/specs-actors/actors/crypto" + "github.com/filecoin-project/specs-actors/actors/runtime/exitcode" + "github.com/ipfs/go-cid" ) type ClientNodeAdapter struct { @@ -77,21 +75,12 @@ func (c *ClientNodeAdapter) ListStorageProviders(ctx context.Context, encodedTs var out []*storagemarket.StorageProviderInfo for _, addr := range addresses { - mi, err := c.StateMinerInfo(ctx, addr, tsk) + mi, err := c.GetMinerInfo(ctx, addr, encodedTs) if err != nil { return nil, err } - multiaddrs := make([]multiaddr.Multiaddr, 0, len(mi.Multiaddrs)) - for _, a := range mi.Multiaddrs { - maddr, err := multiaddr.NewMultiaddrBytes(a) - if err != nil { - return nil, err - } - multiaddrs = append(multiaddrs, maddr) - } - storageProviderInfo := utils.NewStorageProviderInfo(addr, mi.Worker, mi.SectorSize, mi.PeerId, multiaddrs) - out = append(out, &storageProviderInfo) + out = append(out, mi) } return out, nil @@ -523,15 +512,8 @@ func (c *ClientNodeAdapter) GetMinerInfo(ctx context.Context, addr address.Addre if err != nil { return nil, err } - multiaddrs := make([]multiaddr.Multiaddr, 0, len(mi.Multiaddrs)) - for _, a := range mi.Multiaddrs { - maddr, err := multiaddr.NewMultiaddrBytes(a) - if err != nil { - return nil, err - } - multiaddrs = append(multiaddrs, maddr) - } - out := utils.NewStorageProviderInfo(addr, mi.Worker, mi.SectorSize, mi.PeerId, multiaddrs) + + out := utils.NewStorageProviderInfo(addr, mi.Worker, mi.SectorSize, mi.PeerId, mi.Multiaddrs) return &out, nil } diff --git a/markets/utils/converters.go b/markets/utils/converters.go index 4c7ab5c2d..e1089842e 100644 --- a/markets/utils/converters.go +++ b/markets/utils/converters.go @@ -12,14 +12,22 @@ import ( "github.com/filecoin-project/go-fil-markets/storagemarket" ) -func NewStorageProviderInfo(address address.Address, miner address.Address, sectorSize abi.SectorSize, peer peer.ID, addrs []multiaddr.Multiaddr) storagemarket.StorageProviderInfo { +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: addrs, + Addrs: multiaddrs, } } diff --git a/node/impl/client/client.go b/node/impl/client/client.go index 9415538b0..291aeb66e 100644 --- a/node/impl/client/client.go +++ b/node/impl/client/client.go @@ -24,7 +24,6 @@ import ( "github.com/ipld/go-ipld-prime/traversal/selector" "github.com/ipld/go-ipld-prime/traversal/selector/builder" "github.com/libp2p/go-libp2p-core/peer" - "github.com/multiformats/go-multiaddr" mh "github.com/multiformats/go-multihash" "go.uber.org/fx" @@ -121,15 +120,6 @@ func (a *API) ClientStartDeal(ctx context.Context, params *api.StartDealParams) return nil, xerrors.Errorf("failed getting peer ID: %w", err) } - multiaddrs := make([]multiaddr.Multiaddr, 0, len(mi.Multiaddrs)) - for _, a := range mi.Multiaddrs { - maddr, err := multiaddr.NewMultiaddrBytes(a) - if err != nil { - return nil, err - } - multiaddrs = append(multiaddrs, maddr) - } - md, err := a.StateMinerProvingDeadline(ctx, params.Miner, types.EmptyTSK) if err != nil { return nil, xerrors.Errorf("failed getting miner's deadline info: %w", err) @@ -144,7 +134,7 @@ func (a *API) ClientStartDeal(ctx context.Context, params *api.StartDealParams) return nil, xerrors.New("data doesn't fit in a sector") } - providerInfo := utils.NewStorageProviderInfo(params.Miner, mi.Worker, mi.SectorSize, mi.PeerId, multiaddrs) + providerInfo := utils.NewStorageProviderInfo(params.Miner, mi.Worker, mi.SectorSize, mi.PeerId, mi.Multiaddrs) dealStart := params.DealStartEpoch if dealStart <= 0 { // unset, or explicitly 'epoch undefined' @@ -517,7 +507,12 @@ func (a *API) ClientRetrieve(ctx context.Context, order api.RetrievalOrder, ref } func (a *API) ClientQueryAsk(ctx context.Context, p peer.ID, miner address.Address) (*storagemarket.SignedStorageAsk, error) { - info := utils.NewStorageProviderInfo(miner, address.Undef, 0, p, nil) + mi, err := a.StateMinerInfo(ctx, miner, types.EmptyTSK) + if err != nil { + return nil, xerrors.Errorf("failed getting miner info: %w", err) + } + + info := utils.NewStorageProviderInfo(miner, mi.Worker, mi.SectorSize, p, mi.Multiaddrs) signedAsk, err := a.SMDealClient.GetAsk(ctx, info) if err != nil { return nil, err