review fixes
This commit is contained in:
parent
97b04b7f77
commit
b5c5e6627e
@ -964,6 +964,11 @@ workflows:
|
|||||||
suite: itest-paych_cli
|
suite: itest-paych_cli
|
||||||
target: "./itests/paych_cli_test.go"
|
target: "./itests/paych_cli_test.go"
|
||||||
|
|
||||||
|
- test:
|
||||||
|
name: test-itest-pending_deal_allocation_retrieval
|
||||||
|
suite: itest-pending_deal_allocation_retrieval
|
||||||
|
target: "./itests/pending_deal_allocation_retrieval_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-sdr_upgrade
|
name: test-itest-sdr_upgrade
|
||||||
suite: itest-sdr_upgrade
|
suite: itest-sdr_upgrade
|
||||||
|
@ -528,10 +528,10 @@ type FullNode interface {
|
|||||||
StateMarketDeals(context.Context, types.TipSetKey) (map[string]*MarketDeal, error) //perm:read
|
StateMarketDeals(context.Context, types.TipSetKey) (map[string]*MarketDeal, error) //perm:read
|
||||||
// StateMarketStorageDeal returns information about the indicated deal
|
// StateMarketStorageDeal returns information about the indicated deal
|
||||||
StateMarketStorageDeal(context.Context, abi.DealID, types.TipSetKey) (*MarketDeal, error) //perm:read
|
StateMarketStorageDeal(context.Context, abi.DealID, types.TipSetKey) (*MarketDeal, error) //perm:read
|
||||||
// StateGetDealAllocation returns the allocation ID for a given deal ID.
|
// StateGetAllocationForPendingDeal returns the allocation for a given deal ID of a pending deal.
|
||||||
StateGetDealAllocation(ctx context.Context, dealId abi.DealID, tsk types.TipSetKey) (*verifregtypes.Allocation, error) //perm:read
|
StateGetAllocationForPendingDeal(ctx context.Context, dealId abi.DealID, tsk types.TipSetKey) (*verifregtypes.Allocation, error) //perm:read
|
||||||
// StateGetAllocation returns the allocation ID for a given address and allocation ID.
|
// StateGetAllocation returns the allocation for a given address and allocation ID.
|
||||||
StateGetAllocation(ctx context.Context, addr address.Address, allocationId verifregtypes.AllocationId, tsk types.TipSetKey) (*verifregtypes.Allocation, error) //perm:read
|
StateGetAllocation(ctx context.Context, clientAddr address.Address, allocationId verifregtypes.AllocationId, tsk types.TipSetKey) (*verifregtypes.Allocation, error) //perm:read
|
||||||
// StateComputeDataCID computes DataCID from a set of on-chain deals
|
// StateComputeDataCID computes DataCID from a set of on-chain deals
|
||||||
StateComputeDataCID(ctx context.Context, maddr address.Address, sectorType abi.RegisteredSealProof, deals []abi.DealID, tsk types.TipSetKey) (cid.Cid, error) //perm:read
|
StateComputeDataCID(ctx context.Context, maddr address.Address, sectorType abi.RegisteredSealProof, deals []abi.DealID, tsk types.TipSetKey) (cid.Cid, error) //perm:read
|
||||||
// StateLookupID retrieves the ID address of the given address
|
// StateLookupID retrieves the ID address of the given address
|
||||||
|
@ -2483,6 +2483,21 @@ func (mr *MockFullNodeMockRecorder) StateGetAllocation(arg0, arg1, arg2, arg3 in
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateGetAllocation", reflect.TypeOf((*MockFullNode)(nil).StateGetAllocation), arg0, arg1, arg2, arg3)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateGetAllocation", reflect.TypeOf((*MockFullNode)(nil).StateGetAllocation), arg0, arg1, arg2, arg3)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// StateGetAllocationForPendingDeal mocks base method.
|
||||||
|
func (m *MockFullNode) StateGetAllocationForPendingDeal(arg0 context.Context, arg1 abi.DealID, arg2 types.TipSetKey) (*verifreg.Allocation, error) {
|
||||||
|
m.ctrl.T.Helper()
|
||||||
|
ret := m.ctrl.Call(m, "StateGetAllocationForPendingDeal", arg0, arg1, arg2)
|
||||||
|
ret0, _ := ret[0].(*verifreg.Allocation)
|
||||||
|
ret1, _ := ret[1].(error)
|
||||||
|
return ret0, ret1
|
||||||
|
}
|
||||||
|
|
||||||
|
// StateGetAllocationForPendingDeal indicates an expected call of StateGetAllocationForPendingDeal.
|
||||||
|
func (mr *MockFullNodeMockRecorder) StateGetAllocationForPendingDeal(arg0, arg1, arg2 interface{}) *gomock.Call {
|
||||||
|
mr.mock.ctrl.T.Helper()
|
||||||
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateGetAllocationForPendingDeal", reflect.TypeOf((*MockFullNode)(nil).StateGetAllocationForPendingDeal), arg0, arg1, arg2)
|
||||||
|
}
|
||||||
|
|
||||||
// StateGetBeaconEntry mocks base method.
|
// StateGetBeaconEntry mocks base method.
|
||||||
func (m *MockFullNode) StateGetBeaconEntry(arg0 context.Context, arg1 abi.ChainEpoch) (*types.BeaconEntry, error) {
|
func (m *MockFullNode) StateGetBeaconEntry(arg0 context.Context, arg1 abi.ChainEpoch) (*types.BeaconEntry, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
@ -2498,21 +2513,6 @@ func (mr *MockFullNodeMockRecorder) StateGetBeaconEntry(arg0, arg1 interface{})
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateGetBeaconEntry", reflect.TypeOf((*MockFullNode)(nil).StateGetBeaconEntry), arg0, arg1)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateGetBeaconEntry", reflect.TypeOf((*MockFullNode)(nil).StateGetBeaconEntry), arg0, arg1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// StateGetDealAllocation mocks base method.
|
|
||||||
func (m *MockFullNode) StateGetDealAllocation(arg0 context.Context, arg1 abi.DealID, arg2 types.TipSetKey) (*verifreg.Allocation, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "StateGetDealAllocation", arg0, arg1, arg2)
|
|
||||||
ret0, _ := ret[0].(*verifreg.Allocation)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// StateGetDealAllocation indicates an expected call of StateGetDealAllocation.
|
|
||||||
func (mr *MockFullNodeMockRecorder) StateGetDealAllocation(arg0, arg1, arg2 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateGetDealAllocation", reflect.TypeOf((*MockFullNode)(nil).StateGetDealAllocation), arg0, arg1, arg2)
|
|
||||||
}
|
|
||||||
|
|
||||||
// StateGetNetworkParams mocks base method.
|
// StateGetNetworkParams mocks base method.
|
||||||
func (m *MockFullNode) StateGetNetworkParams(arg0 context.Context) (*api.NetworkParams, error) {
|
func (m *MockFullNode) StateGetNetworkParams(arg0 context.Context) (*api.NetworkParams, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
|
@ -368,9 +368,9 @@ type FullNodeStruct struct {
|
|||||||
|
|
||||||
StateGetAllocation func(p0 context.Context, p1 address.Address, p2 verifregtypes.AllocationId, p3 types.TipSetKey) (*verifregtypes.Allocation, error) `perm:"read"`
|
StateGetAllocation func(p0 context.Context, p1 address.Address, p2 verifregtypes.AllocationId, p3 types.TipSetKey) (*verifregtypes.Allocation, error) `perm:"read"`
|
||||||
|
|
||||||
StateGetBeaconEntry func(p0 context.Context, p1 abi.ChainEpoch) (*types.BeaconEntry, error) `perm:"read"`
|
StateGetAllocationForPendingDeal func(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) `perm:"read"`
|
||||||
|
|
||||||
StateGetDealAllocation func(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) `perm:"read"`
|
StateGetBeaconEntry func(p0 context.Context, p1 abi.ChainEpoch) (*types.BeaconEntry, error) `perm:"read"`
|
||||||
|
|
||||||
StateGetNetworkParams func(p0 context.Context) (*NetworkParams, error) `perm:"read"`
|
StateGetNetworkParams func(p0 context.Context) (*NetworkParams, error) `perm:"read"`
|
||||||
|
|
||||||
@ -2608,6 +2608,17 @@ func (s *FullNodeStub) StateGetAllocation(p0 context.Context, p1 address.Address
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *FullNodeStruct) StateGetAllocationForPendingDeal(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) {
|
||||||
|
if s.Internal.StateGetAllocationForPendingDeal == nil {
|
||||||
|
return nil, ErrNotSupported
|
||||||
|
}
|
||||||
|
return s.Internal.StateGetAllocationForPendingDeal(p0, p1, p2)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *FullNodeStub) StateGetAllocationForPendingDeal(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) {
|
||||||
|
return nil, ErrNotSupported
|
||||||
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) StateGetBeaconEntry(p0 context.Context, p1 abi.ChainEpoch) (*types.BeaconEntry, error) {
|
func (s *FullNodeStruct) StateGetBeaconEntry(p0 context.Context, p1 abi.ChainEpoch) (*types.BeaconEntry, error) {
|
||||||
if s.Internal.StateGetBeaconEntry == nil {
|
if s.Internal.StateGetBeaconEntry == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
@ -2619,17 +2630,6 @@ func (s *FullNodeStub) StateGetBeaconEntry(p0 context.Context, p1 abi.ChainEpoch
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) StateGetDealAllocation(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) {
|
|
||||||
if s.Internal.StateGetDealAllocation == nil {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.StateGetDealAllocation(p0, p1, p2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *FullNodeStub) StateGetDealAllocation(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *FullNodeStruct) StateGetNetworkParams(p0 context.Context) (*NetworkParams, error) {
|
func (s *FullNodeStruct) StateGetNetworkParams(p0 context.Context) (*NetworkParams, error) {
|
||||||
if s.Internal.StateGetNetworkParams == nil {
|
if s.Internal.StateGetNetworkParams == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
|
@ -532,10 +532,10 @@ type FullNode interface {
|
|||||||
StateMarketDeals(context.Context, types.TipSetKey) (map[string]*api.MarketDeal, error) //perm:read
|
StateMarketDeals(context.Context, types.TipSetKey) (map[string]*api.MarketDeal, error) //perm:read
|
||||||
// StateMarketStorageDeal returns information about the indicated deal
|
// StateMarketStorageDeal returns information about the indicated deal
|
||||||
StateMarketStorageDeal(context.Context, abi.DealID, types.TipSetKey) (*api.MarketDeal, error) //perm:read
|
StateMarketStorageDeal(context.Context, abi.DealID, types.TipSetKey) (*api.MarketDeal, error) //perm:read
|
||||||
// StateGetDealAllocation returns the allocation ID for a given deal ID.
|
// StateGetAllocationForPendingDeal returns the allocation for a given deal ID of a pending deal.
|
||||||
StateGetDealAllocation(ctx context.Context, dealId abi.DealID, tsk types.TipSetKey) (*verifregtypes.Allocation, error)
|
StateGetAllocationForPendingDeal(ctx context.Context, dealId abi.DealID, tsk types.TipSetKey) (*verifregtypes.Allocation, error)
|
||||||
// StateGetAllocation returns the allocation ID for a given address and allocation ID.
|
// StateGetAllocation returns the allocation for a given address and allocation ID.
|
||||||
StateGetAllocation(ctx context.Context, addr address.Address, allocationId verifregtypes.AllocationId, tsk types.TipSetKey) (*verifregtypes.Allocation, error) //perm:read
|
StateGetAllocation(ctx context.Context, clientAddr address.Address, allocationId verifregtypes.AllocationId, tsk types.TipSetKey) (*verifregtypes.Allocation, error) //perm:read
|
||||||
// StateLookupID retrieves the ID address of the given address
|
// StateLookupID retrieves the ID address of the given address
|
||||||
StateLookupID(context.Context, address.Address, types.TipSetKey) (address.Address, error) //perm:read
|
StateLookupID(context.Context, address.Address, types.TipSetKey) (address.Address, error) //perm:read
|
||||||
// StateAccountKey returns the public key address of the given ID address
|
// StateAccountKey returns the public key address of the given ID address
|
||||||
|
@ -280,7 +280,7 @@ type FullNodeStruct struct {
|
|||||||
|
|
||||||
StateGetAllocation func(p0 context.Context, p1 address.Address, p2 verifregtypes.AllocationId, p3 types.TipSetKey) (*verifregtypes.Allocation, error) `perm:"read"`
|
StateGetAllocation func(p0 context.Context, p1 address.Address, p2 verifregtypes.AllocationId, p3 types.TipSetKey) (*verifregtypes.Allocation, error) `perm:"read"`
|
||||||
|
|
||||||
StateGetDealAllocation func(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) ``
|
StateGetAllocationForPendingDeal func(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) ``
|
||||||
|
|
||||||
StateGetNetworkParams func(p0 context.Context) (*api.NetworkParams, error) `perm:"read"`
|
StateGetNetworkParams func(p0 context.Context) (*api.NetworkParams, error) `perm:"read"`
|
||||||
|
|
||||||
@ -1809,14 +1809,14 @@ func (s *FullNodeStub) StateGetAllocation(p0 context.Context, p1 address.Address
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) StateGetDealAllocation(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) {
|
func (s *FullNodeStruct) StateGetAllocationForPendingDeal(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) {
|
||||||
if s.Internal.StateGetDealAllocation == nil {
|
if s.Internal.StateGetAllocationForPendingDeal == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.StateGetDealAllocation(p0, p1, p2)
|
return s.Internal.StateGetAllocationForPendingDeal(p0, p1, p2)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStub) StateGetDealAllocation(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) {
|
func (s *FullNodeStub) StateGetAllocationForPendingDeal(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2338,19 +2338,19 @@ func (mr *MockFullNodeMockRecorder) StateGetAllocation(arg0, arg1, arg2, arg3 in
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateGetAllocation", reflect.TypeOf((*MockFullNode)(nil).StateGetAllocation), arg0, arg1, arg2, arg3)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateGetAllocation", reflect.TypeOf((*MockFullNode)(nil).StateGetAllocation), arg0, arg1, arg2, arg3)
|
||||||
}
|
}
|
||||||
|
|
||||||
// StateGetDealAllocation mocks base method.
|
// StateGetAllocationForPendingDeal mocks base method.
|
||||||
func (m *MockFullNode) StateGetDealAllocation(arg0 context.Context, arg1 abi.DealID, arg2 types.TipSetKey) (*verifreg.Allocation, error) {
|
func (m *MockFullNode) StateGetAllocationForPendingDeal(arg0 context.Context, arg1 abi.DealID, arg2 types.TipSetKey) (*verifreg.Allocation, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "StateGetDealAllocation", arg0, arg1, arg2)
|
ret := m.ctrl.Call(m, "StateGetAllocationForPendingDeal", arg0, arg1, arg2)
|
||||||
ret0, _ := ret[0].(*verifreg.Allocation)
|
ret0, _ := ret[0].(*verifreg.Allocation)
|
||||||
ret1, _ := ret[1].(error)
|
ret1, _ := ret[1].(error)
|
||||||
return ret0, ret1
|
return ret0, ret1
|
||||||
}
|
}
|
||||||
|
|
||||||
// StateGetDealAllocation indicates an expected call of StateGetDealAllocation.
|
// StateGetAllocationForPendingDeal indicates an expected call of StateGetAllocationForPendingDeal.
|
||||||
func (mr *MockFullNodeMockRecorder) StateGetDealAllocation(arg0, arg1, arg2 interface{}) *gomock.Call {
|
func (mr *MockFullNodeMockRecorder) StateGetAllocationForPendingDeal(arg0, arg1, arg2 interface{}) *gomock.Call {
|
||||||
mr.mock.ctrl.T.Helper()
|
mr.mock.ctrl.T.Helper()
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateGetDealAllocation", reflect.TypeOf((*MockFullNode)(nil).StateGetDealAllocation), arg0, arg1, arg2)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateGetAllocationForPendingDeal", reflect.TypeOf((*MockFullNode)(nil).StateGetAllocationForPendingDeal), arg0, arg1, arg2)
|
||||||
}
|
}
|
||||||
|
|
||||||
// StateGetNetworkParams mocks base method.
|
// StateGetNetworkParams mocks base method.
|
||||||
|
Binary file not shown.
@ -86,7 +86,7 @@ type State interface {
|
|||||||
) (weight, verifiedWeight abi.DealWeight, err error)
|
) (weight, verifiedWeight abi.DealWeight, err error)
|
||||||
NextID() (abi.DealID, error)
|
NextID() (abi.DealID, error)
|
||||||
GetState() interface{}
|
GetState() interface{}
|
||||||
GetAllocationId(dealId abi.DealID) (verifregtypes.AllocationId, error)
|
GetAllocationIdForPendingDeal(dealId abi.DealID) (verifregtypes.AllocationId, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type BalanceTable interface {
|
type BalanceTable interface {
|
||||||
|
@ -127,7 +127,7 @@ type State interface {
|
|||||||
) (weight, verifiedWeight abi.DealWeight, err error)
|
) (weight, verifiedWeight abi.DealWeight, err error)
|
||||||
NextID() (abi.DealID, error)
|
NextID() (abi.DealID, error)
|
||||||
GetState() interface{}
|
GetState() interface{}
|
||||||
GetAllocationId(dealId abi.DealID) (verifregtypes.AllocationId, error)
|
GetAllocationIdForPendingDeal(dealId abi.DealID) (verifregtypes.AllocationId, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type BalanceTable interface {
|
type BalanceTable interface {
|
||||||
|
@ -366,7 +366,7 @@ func (r *publishStorageDealsReturn{{.v}}) DealIDs() ([]abi.DealID, error) {
|
|||||||
return r.IDs, nil
|
return r.IDs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *state{{.v}}) GetAllocationId(dealId abi.DealID) (verifregtypes.AllocationId, error) {
|
func (s *state{{.v}}) GetAllocationIdForPendingDeal(dealId abi.DealID) (verifregtypes.AllocationId, error) {
|
||||||
{{if (le .v 8)}}
|
{{if (le .v 8)}}
|
||||||
return 0, xerrors.Errorf("unsupported before actors v9")
|
return 0, xerrors.Errorf("unsupported before actors v9")
|
||||||
{{else}}
|
{{else}}
|
||||||
|
@ -302,7 +302,7 @@ func (r *publishStorageDealsReturn0) DealIDs() ([]abi.DealID, error) {
|
|||||||
return r.IDs, nil
|
return r.IDs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *state0) GetAllocationId(dealId abi.DealID) (verifregtypes.AllocationId, error) {
|
func (s *state0) GetAllocationIdForPendingDeal(dealId abi.DealID) (verifregtypes.AllocationId, error) {
|
||||||
|
|
||||||
return 0, xerrors.Errorf("unsupported before actors v9")
|
return 0, xerrors.Errorf("unsupported before actors v9")
|
||||||
|
|
||||||
|
@ -302,7 +302,7 @@ func (r *publishStorageDealsReturn2) DealIDs() ([]abi.DealID, error) {
|
|||||||
return r.IDs, nil
|
return r.IDs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *state2) GetAllocationId(dealId abi.DealID) (verifregtypes.AllocationId, error) {
|
func (s *state2) GetAllocationIdForPendingDeal(dealId abi.DealID) (verifregtypes.AllocationId, error) {
|
||||||
|
|
||||||
return 0, xerrors.Errorf("unsupported before actors v9")
|
return 0, xerrors.Errorf("unsupported before actors v9")
|
||||||
|
|
||||||
|
@ -297,7 +297,7 @@ func (r *publishStorageDealsReturn3) DealIDs() ([]abi.DealID, error) {
|
|||||||
return r.IDs, nil
|
return r.IDs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *state3) GetAllocationId(dealId abi.DealID) (verifregtypes.AllocationId, error) {
|
func (s *state3) GetAllocationIdForPendingDeal(dealId abi.DealID) (verifregtypes.AllocationId, error) {
|
||||||
|
|
||||||
return 0, xerrors.Errorf("unsupported before actors v9")
|
return 0, xerrors.Errorf("unsupported before actors v9")
|
||||||
|
|
||||||
|
@ -297,7 +297,7 @@ func (r *publishStorageDealsReturn4) DealIDs() ([]abi.DealID, error) {
|
|||||||
return r.IDs, nil
|
return r.IDs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *state4) GetAllocationId(dealId abi.DealID) (verifregtypes.AllocationId, error) {
|
func (s *state4) GetAllocationIdForPendingDeal(dealId abi.DealID) (verifregtypes.AllocationId, error) {
|
||||||
|
|
||||||
return 0, xerrors.Errorf("unsupported before actors v9")
|
return 0, xerrors.Errorf("unsupported before actors v9")
|
||||||
|
|
||||||
|
@ -297,7 +297,7 @@ func (r *publishStorageDealsReturn5) DealIDs() ([]abi.DealID, error) {
|
|||||||
return r.IDs, nil
|
return r.IDs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *state5) GetAllocationId(dealId abi.DealID) (verifregtypes.AllocationId, error) {
|
func (s *state5) GetAllocationIdForPendingDeal(dealId abi.DealID) (verifregtypes.AllocationId, error) {
|
||||||
|
|
||||||
return 0, xerrors.Errorf("unsupported before actors v9")
|
return 0, xerrors.Errorf("unsupported before actors v9")
|
||||||
|
|
||||||
|
@ -315,7 +315,7 @@ func (r *publishStorageDealsReturn6) DealIDs() ([]abi.DealID, error) {
|
|||||||
return r.IDs, nil
|
return r.IDs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *state6) GetAllocationId(dealId abi.DealID) (verifregtypes.AllocationId, error) {
|
func (s *state6) GetAllocationIdForPendingDeal(dealId abi.DealID) (verifregtypes.AllocationId, error) {
|
||||||
|
|
||||||
return 0, xerrors.Errorf("unsupported before actors v9")
|
return 0, xerrors.Errorf("unsupported before actors v9")
|
||||||
|
|
||||||
|
@ -315,7 +315,7 @@ func (r *publishStorageDealsReturn7) DealIDs() ([]abi.DealID, error) {
|
|||||||
return r.IDs, nil
|
return r.IDs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *state7) GetAllocationId(dealId abi.DealID) (verifregtypes.AllocationId, error) {
|
func (s *state7) GetAllocationIdForPendingDeal(dealId abi.DealID) (verifregtypes.AllocationId, error) {
|
||||||
|
|
||||||
return 0, xerrors.Errorf("unsupported before actors v9")
|
return 0, xerrors.Errorf("unsupported before actors v9")
|
||||||
|
|
||||||
|
@ -332,7 +332,7 @@ func (r *publishStorageDealsReturn8) DealIDs() ([]abi.DealID, error) {
|
|||||||
return r.IDs, nil
|
return r.IDs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *state8) GetAllocationId(dealId abi.DealID) (verifregtypes.AllocationId, error) {
|
func (s *state8) GetAllocationIdForPendingDeal(dealId abi.DealID) (verifregtypes.AllocationId, error) {
|
||||||
|
|
||||||
return 0, xerrors.Errorf("unsupported before actors v9")
|
return 0, xerrors.Errorf("unsupported before actors v9")
|
||||||
|
|
||||||
|
@ -328,7 +328,7 @@ func (r *publishStorageDealsReturn9) DealIDs() ([]abi.DealID, error) {
|
|||||||
return r.IDs, nil
|
return r.IDs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *state9) GetAllocationId(dealId abi.DealID) (verifregtypes.AllocationId, error) {
|
func (s *state9) GetAllocationIdForPendingDeal(dealId abi.DealID) (verifregtypes.AllocationId, error) {
|
||||||
|
|
||||||
allocations, err := adt9.AsMap(s.store, s.PendingDealAllocationIds, builtin.DefaultHamtBitwidth)
|
allocations, err := adt9.AsMap(s.store, s.PendingDealAllocationIds, builtin.DefaultHamtBitwidth)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -73,6 +73,6 @@ type State interface {
|
|||||||
RemoveDataCapProposalID(verifier address.Address, client address.Address) (bool, uint64, error)
|
RemoveDataCapProposalID(verifier address.Address, client address.Address) (bool, uint64, error)
|
||||||
ForEachVerifier(func(addr address.Address, dcap abi.StoragePower) error) error
|
ForEachVerifier(func(addr address.Address, dcap abi.StoragePower) error) error
|
||||||
ForEachClient(func(addr address.Address, dcap abi.StoragePower) error) error
|
ForEachClient(func(addr address.Address, dcap abi.StoragePower) error) error
|
||||||
GetAllocation(addr address.Address, allocationId verifregtypes.AllocationId) (*verifregtypes.Allocation, bool, error)
|
GetAllocation(clientIdAddr address.Address, allocationId verifregtypes.AllocationId) (*verifregtypes.Allocation, bool, error)
|
||||||
GetState() interface{}
|
GetState() interface{}
|
||||||
}
|
}
|
||||||
|
@ -116,10 +116,10 @@ func (s *state{{.v}}) GetState() interface{} {
|
|||||||
return &s.State
|
return &s.State
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *state{{.v}}) GetAllocation(addr address.Address, allocationId verifreg9.AllocationId) (*verifreg9.Allocation, bool, error) {
|
func (s *state{{.v}}) GetAllocation(clientIdAddr address.Address, allocationId verifreg9.AllocationId) (*verifreg9.Allocation, bool, error) {
|
||||||
{{if (le .v 8)}}
|
{{if (le .v 8)}}
|
||||||
return nil, false, xerrors.Errorf("unsupported in actors v{{.v}}")
|
return nil, false, xerrors.Errorf("unsupported in actors v{{.v}}")
|
||||||
{{else}}
|
{{else}}
|
||||||
return s.FindAllocation(s.store, addr, allocationId)
|
return s.FindAllocation(s.store, clientIdAddr, allocationId)
|
||||||
{{end}}
|
{{end}}
|
||||||
}
|
}
|
@ -90,7 +90,7 @@ func (s *state0) GetState() interface{} {
|
|||||||
return &s.State
|
return &s.State
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *state0) GetAllocation(addr address.Address, allocationId verifreg9.AllocationId) (*verifreg9.Allocation, bool, error) {
|
func (s *state0) GetAllocation(clientIdAddr address.Address, allocationId verifreg9.AllocationId) (*verifreg9.Allocation, bool, error) {
|
||||||
|
|
||||||
return nil, false, xerrors.Errorf("unsupported in actors v0")
|
return nil, false, xerrors.Errorf("unsupported in actors v0")
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ func (s *state2) GetState() interface{} {
|
|||||||
return &s.State
|
return &s.State
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *state2) GetAllocation(addr address.Address, allocationId verifreg9.AllocationId) (*verifreg9.Allocation, bool, error) {
|
func (s *state2) GetAllocation(clientIdAddr address.Address, allocationId verifreg9.AllocationId) (*verifreg9.Allocation, bool, error) {
|
||||||
|
|
||||||
return nil, false, xerrors.Errorf("unsupported in actors v2")
|
return nil, false, xerrors.Errorf("unsupported in actors v2")
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ func (s *state3) GetState() interface{} {
|
|||||||
return &s.State
|
return &s.State
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *state3) GetAllocation(addr address.Address, allocationId verifreg9.AllocationId) (*verifreg9.Allocation, bool, error) {
|
func (s *state3) GetAllocation(clientIdAddr address.Address, allocationId verifreg9.AllocationId) (*verifreg9.Allocation, bool, error) {
|
||||||
|
|
||||||
return nil, false, xerrors.Errorf("unsupported in actors v3")
|
return nil, false, xerrors.Errorf("unsupported in actors v3")
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ func (s *state4) GetState() interface{} {
|
|||||||
return &s.State
|
return &s.State
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *state4) GetAllocation(addr address.Address, allocationId verifreg9.AllocationId) (*verifreg9.Allocation, bool, error) {
|
func (s *state4) GetAllocation(clientIdAddr address.Address, allocationId verifreg9.AllocationId) (*verifreg9.Allocation, bool, error) {
|
||||||
|
|
||||||
return nil, false, xerrors.Errorf("unsupported in actors v4")
|
return nil, false, xerrors.Errorf("unsupported in actors v4")
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ func (s *state5) GetState() interface{} {
|
|||||||
return &s.State
|
return &s.State
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *state5) GetAllocation(addr address.Address, allocationId verifreg9.AllocationId) (*verifreg9.Allocation, bool, error) {
|
func (s *state5) GetAllocation(clientIdAddr address.Address, allocationId verifreg9.AllocationId) (*verifreg9.Allocation, bool, error) {
|
||||||
|
|
||||||
return nil, false, xerrors.Errorf("unsupported in actors v5")
|
return nil, false, xerrors.Errorf("unsupported in actors v5")
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ func (s *state6) GetState() interface{} {
|
|||||||
return &s.State
|
return &s.State
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *state6) GetAllocation(addr address.Address, allocationId verifreg9.AllocationId) (*verifreg9.Allocation, bool, error) {
|
func (s *state6) GetAllocation(clientIdAddr address.Address, allocationId verifreg9.AllocationId) (*verifreg9.Allocation, bool, error) {
|
||||||
|
|
||||||
return nil, false, xerrors.Errorf("unsupported in actors v6")
|
return nil, false, xerrors.Errorf("unsupported in actors v6")
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ func (s *state7) GetState() interface{} {
|
|||||||
return &s.State
|
return &s.State
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *state7) GetAllocation(addr address.Address, allocationId verifreg9.AllocationId) (*verifreg9.Allocation, bool, error) {
|
func (s *state7) GetAllocation(clientIdAddr address.Address, allocationId verifreg9.AllocationId) (*verifreg9.Allocation, bool, error) {
|
||||||
|
|
||||||
return nil, false, xerrors.Errorf("unsupported in actors v7")
|
return nil, false, xerrors.Errorf("unsupported in actors v7")
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ func (s *state8) GetState() interface{} {
|
|||||||
return &s.State
|
return &s.State
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *state8) GetAllocation(addr address.Address, allocationId verifreg9.AllocationId) (*verifreg9.Allocation, bool, error) {
|
func (s *state8) GetAllocation(clientIdAddr address.Address, allocationId verifreg9.AllocationId) (*verifreg9.Allocation, bool, error) {
|
||||||
|
|
||||||
return nil, false, xerrors.Errorf("unsupported in actors v8")
|
return nil, false, xerrors.Errorf("unsupported in actors v8")
|
||||||
|
|
||||||
|
@ -90,8 +90,8 @@ func (s *state9) GetState() interface{} {
|
|||||||
return &s.State
|
return &s.State
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *state9) GetAllocation(addr address.Address, allocationId verifreg9.AllocationId) (*verifreg9.Allocation, bool, error) {
|
func (s *state9) GetAllocation(clientIdAddr address.Address, allocationId verifreg9.AllocationId) (*verifreg9.Allocation, bool, error) {
|
||||||
|
|
||||||
return s.FindAllocation(s.store, addr, allocationId)
|
return s.FindAllocation(s.store, clientIdAddr, allocationId)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -115,6 +115,6 @@ type State interface {
|
|||||||
RemoveDataCapProposalID(verifier address.Address, client address.Address) (bool, uint64, error)
|
RemoveDataCapProposalID(verifier address.Address, client address.Address) (bool, uint64, error)
|
||||||
ForEachVerifier(func(addr address.Address, dcap abi.StoragePower) error) error
|
ForEachVerifier(func(addr address.Address, dcap abi.StoragePower) error) error
|
||||||
ForEachClient(func(addr address.Address, dcap abi.StoragePower) error) error
|
ForEachClient(func(addr address.Address, dcap abi.StoragePower) error) error
|
||||||
GetAllocation(addr address.Address, allocationId verifregtypes.AllocationId) (*verifregtypes.Allocation, bool, error)
|
GetAllocation(clientIdAddr address.Address, allocationId verifregtypes.AllocationId) (*verifregtypes.Allocation, bool, error)
|
||||||
GetState() interface{}
|
GetState() interface{}
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@ import (
|
|||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
||||||
"github.com/filecoin-project/go-state-types/big"
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
|
"github.com/filecoin-project/go-state-types/builtin"
|
||||||
"github.com/filecoin-project/specs-actors/actors/util/adt"
|
"github.com/filecoin-project/specs-actors/actors/util/adt"
|
||||||
|
|
||||||
bstore "github.com/filecoin-project/lotus/blockstore"
|
bstore "github.com/filecoin-project/lotus/blockstore"
|
||||||
@ -20,7 +21,6 @@ import (
|
|||||||
var GovernorId address.Address
|
var GovernorId address.Address
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
|
||||||
idk, err := address.NewFromString("t06")
|
idk, err := address.NewFromString("t06")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
@ -31,19 +31,19 @@ func init() {
|
|||||||
|
|
||||||
func SetupDatacapActor(ctx context.Context, bs bstore.Blockstore, av actorstypes.Version) (*types.Actor, error) {
|
func SetupDatacapActor(ctx context.Context, bs bstore.Blockstore, av actorstypes.Version) (*types.Actor, error) {
|
||||||
cst := cbor.NewCborStore(bs)
|
cst := cbor.NewCborStore(bs)
|
||||||
vst, err := datacap.MakeState(adt.WrapStore(ctx, cbor.NewCborStore(bs)), av, GovernorId, 3) // TODO make into variable
|
dst, err := datacap.MakeState(adt.WrapStore(ctx, cbor.NewCborStore(bs)), av, GovernorId, builtin.DefaultTokenActorBitwidth)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
statecid, err := cst.Put(ctx, vst.GetState())
|
statecid, err := cst.Put(ctx, dst.GetState())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
actcid, ok := actors.GetActorCodeID(av, actors.DatacapKey)
|
actcid, ok := actors.GetActorCodeID(av, actors.DatacapKey)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, xerrors.Errorf("failed to get verifreg actor code ID for actors version %d", av)
|
return nil, xerrors.Errorf("failed to get datacap actor code ID for actors version %d", av)
|
||||||
}
|
}
|
||||||
|
|
||||||
act := &types.Actor{
|
act := &types.Actor{
|
||||||
|
@ -169,7 +169,7 @@
|
|||||||
* [StateDecodeParams](#StateDecodeParams)
|
* [StateDecodeParams](#StateDecodeParams)
|
||||||
* [StateGetActor](#StateGetActor)
|
* [StateGetActor](#StateGetActor)
|
||||||
* [StateGetAllocation](#StateGetAllocation)
|
* [StateGetAllocation](#StateGetAllocation)
|
||||||
* [StateGetDealAllocation](#StateGetDealAllocation)
|
* [StateGetAllocationForPendingDeal](#StateGetAllocationForPendingDeal)
|
||||||
* [StateGetNetworkParams](#StateGetNetworkParams)
|
* [StateGetNetworkParams](#StateGetNetworkParams)
|
||||||
* [StateGetRandomnessFromBeacon](#StateGetRandomnessFromBeacon)
|
* [StateGetRandomnessFromBeacon](#StateGetRandomnessFromBeacon)
|
||||||
* [StateGetRandomnessFromTickets](#StateGetRandomnessFromTickets)
|
* [StateGetRandomnessFromTickets](#StateGetRandomnessFromTickets)
|
||||||
@ -5245,7 +5245,7 @@ Response:
|
|||||||
```
|
```
|
||||||
|
|
||||||
### StateGetAllocation
|
### StateGetAllocation
|
||||||
StateGetAllocation returns the allocation ID for a given address and allocation ID.
|
StateGetAllocation returns the allocation for a given address and allocation ID.
|
||||||
|
|
||||||
|
|
||||||
Perms: read
|
Perms: read
|
||||||
@ -5281,8 +5281,8 @@ Response:
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### StateGetDealAllocation
|
### StateGetAllocationForPendingDeal
|
||||||
StateGetDealAllocation returns the allocation ID for a given deal ID.
|
StateGetAllocationForPendingDeal returns the allocation for a given deal ID of a pending deal.
|
||||||
|
|
||||||
|
|
||||||
Perms:
|
Perms:
|
||||||
|
@ -179,8 +179,8 @@
|
|||||||
* [StateEncodeParams](#StateEncodeParams)
|
* [StateEncodeParams](#StateEncodeParams)
|
||||||
* [StateGetActor](#StateGetActor)
|
* [StateGetActor](#StateGetActor)
|
||||||
* [StateGetAllocation](#StateGetAllocation)
|
* [StateGetAllocation](#StateGetAllocation)
|
||||||
|
* [StateGetAllocationForPendingDeal](#StateGetAllocationForPendingDeal)
|
||||||
* [StateGetBeaconEntry](#StateGetBeaconEntry)
|
* [StateGetBeaconEntry](#StateGetBeaconEntry)
|
||||||
* [StateGetDealAllocation](#StateGetDealAllocation)
|
|
||||||
* [StateGetNetworkParams](#StateGetNetworkParams)
|
* [StateGetNetworkParams](#StateGetNetworkParams)
|
||||||
* [StateGetRandomnessFromBeacon](#StateGetRandomnessFromBeacon)
|
* [StateGetRandomnessFromBeacon](#StateGetRandomnessFromBeacon)
|
||||||
* [StateGetRandomnessFromTickets](#StateGetRandomnessFromTickets)
|
* [StateGetRandomnessFromTickets](#StateGetRandomnessFromTickets)
|
||||||
@ -5728,7 +5728,7 @@ Response:
|
|||||||
```
|
```
|
||||||
|
|
||||||
### StateGetAllocation
|
### StateGetAllocation
|
||||||
StateGetAllocation returns the allocation ID for a given address and allocation ID.
|
StateGetAllocation returns the allocation for a given address and allocation ID.
|
||||||
|
|
||||||
|
|
||||||
Perms: read
|
Perms: read
|
||||||
@ -5764,6 +5764,42 @@ Response:
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### StateGetAllocationForPendingDeal
|
||||||
|
StateGetAllocationForPendingDeal returns the allocation for a given deal ID of a pending deal.
|
||||||
|
|
||||||
|
|
||||||
|
Perms: read
|
||||||
|
|
||||||
|
Inputs:
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
5432,
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"/": "bafy2bzacebp3shtrn43k7g3unredz7fxn4gj533d3o43tqn2p2ipxxhrvchve"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
Response:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Client": 1000,
|
||||||
|
"Provider": 1000,
|
||||||
|
"Data": {
|
||||||
|
"/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4"
|
||||||
|
},
|
||||||
|
"Size": 1032,
|
||||||
|
"TermMin": 10101,
|
||||||
|
"TermMax": 10101,
|
||||||
|
"Expiration": 10101
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### StateGetBeaconEntry
|
### StateGetBeaconEntry
|
||||||
StateGetBeaconEntry returns the beacon entry for the given filecoin epoch. If
|
StateGetBeaconEntry returns the beacon entry for the given filecoin epoch. If
|
||||||
the entry has not yet been produced, the call will block until the entry
|
the entry has not yet been produced, the call will block until the entry
|
||||||
@ -5787,42 +5823,6 @@ Response:
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### StateGetDealAllocation
|
|
||||||
StateGetDealAllocation returns the allocation ID for a given deal ID.
|
|
||||||
|
|
||||||
|
|
||||||
Perms: read
|
|
||||||
|
|
||||||
Inputs:
|
|
||||||
```json
|
|
||||||
[
|
|
||||||
5432,
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"/": "bafy2bzacebp3shtrn43k7g3unredz7fxn4gj533d3o43tqn2p2ipxxhrvchve"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
]
|
|
||||||
```
|
|
||||||
|
|
||||||
Response:
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"Client": 1000,
|
|
||||||
"Provider": 1000,
|
|
||||||
"Data": {
|
|
||||||
"/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4"
|
|
||||||
},
|
|
||||||
"Size": 1032,
|
|
||||||
"TermMin": 10101,
|
|
||||||
"TermMax": 10101,
|
|
||||||
"Expiration": 10101
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### StateGetNetworkParams
|
### StateGetNetworkParams
|
||||||
StateGetNetworkParams return current network params
|
StateGetNetworkParams return current network params
|
||||||
|
|
||||||
|
2
go.mod
2
go.mod
@ -42,7 +42,7 @@ require (
|
|||||||
github.com/filecoin-project/go-legs v0.4.4
|
github.com/filecoin-project/go-legs v0.4.4
|
||||||
github.com/filecoin-project/go-padreader v0.0.1
|
github.com/filecoin-project/go-padreader v0.0.1
|
||||||
github.com/filecoin-project/go-paramfetch v0.0.4
|
github.com/filecoin-project/go-paramfetch v0.0.4
|
||||||
github.com/filecoin-project/go-state-types v0.1.13-0.20221004175601-1427aec8869f
|
github.com/filecoin-project/go-state-types v0.1.13-0.20221005183518-065d9b6b758b
|
||||||
github.com/filecoin-project/go-statemachine v1.0.2
|
github.com/filecoin-project/go-statemachine v1.0.2
|
||||||
github.com/filecoin-project/go-statestore v0.2.0
|
github.com/filecoin-project/go-statestore v0.2.0
|
||||||
github.com/filecoin-project/go-storedcounter v0.1.0
|
github.com/filecoin-project/go-storedcounter v0.1.0
|
||||||
|
4
go.sum
4
go.sum
@ -343,8 +343,8 @@ github.com/filecoin-project/go-state-types v0.1.0/go.mod h1:ezYnPf0bNkTsDibL/psS
|
|||||||
github.com/filecoin-project/go-state-types v0.1.6/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q=
|
github.com/filecoin-project/go-state-types v0.1.6/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q=
|
||||||
github.com/filecoin-project/go-state-types v0.1.8/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q=
|
github.com/filecoin-project/go-state-types v0.1.8/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q=
|
||||||
github.com/filecoin-project/go-state-types v0.1.10/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q=
|
github.com/filecoin-project/go-state-types v0.1.10/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q=
|
||||||
github.com/filecoin-project/go-state-types v0.1.13-0.20221004175601-1427aec8869f h1:UKVkUqu7aMXr07HpBqCvC1J8R0lTFX7rK6+92XUs10g=
|
github.com/filecoin-project/go-state-types v0.1.13-0.20221005183518-065d9b6b758b h1:xHgXHL/FBDBYGslrF52G2E/eyJwm4aFpnrK7e2bzSqU=
|
||||||
github.com/filecoin-project/go-state-types v0.1.13-0.20221004175601-1427aec8869f/go.mod h1:+HCZifUV+e8TlQkgll22Ucuiq8OrVJkK+4Kh4u75iiw=
|
github.com/filecoin-project/go-state-types v0.1.13-0.20221005183518-065d9b6b758b/go.mod h1:+HCZifUV+e8TlQkgll22Ucuiq8OrVJkK+4Kh4u75iiw=
|
||||||
github.com/filecoin-project/go-statemachine v0.0.0-20200925024713-05bd7c71fbfe/go.mod h1:FGwQgZAt2Gh5mjlwJUlVB62JeYdo+if0xWxSEfBD9ig=
|
github.com/filecoin-project/go-statemachine v0.0.0-20200925024713-05bd7c71fbfe/go.mod h1:FGwQgZAt2Gh5mjlwJUlVB62JeYdo+if0xWxSEfBD9ig=
|
||||||
github.com/filecoin-project/go-statemachine v1.0.2 h1:421SSWBk8GIoCoWYYTE/d+qCWccgmRH0uXotXRDjUbc=
|
github.com/filecoin-project/go-statemachine v1.0.2 h1:421SSWBk8GIoCoWYYTE/d+qCWccgmRH0uXotXRDjUbc=
|
||||||
github.com/filecoin-project/go-statemachine v1.0.2/go.mod h1:jZdXXiHa61n4NmgWFG4w8tnqgvZVHYbJ3yW7+y8bF54=
|
github.com/filecoin-project/go-statemachine v1.0.2/go.mod h1:jZdXXiHa61n4NmgWFG4w8tnqgvZVHYbJ3yW7+y8bF54=
|
||||||
|
@ -2,9 +2,7 @@
|
|||||||
package itests
|
package itests
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
@ -15,22 +13,9 @@ import (
|
|||||||
commp "github.com/filecoin-project/go-fil-commp-hashhash"
|
commp "github.com/filecoin-project/go-fil-commp-hashhash"
|
||||||
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/big"
|
|
||||||
"github.com/filecoin-project/go-state-types/builtin"
|
|
||||||
markettypes "github.com/filecoin-project/go-state-types/builtin/v9/market"
|
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
|
||||||
"github.com/filecoin-project/go-state-types/crypto"
|
|
||||||
"github.com/filecoin-project/go-state-types/exitcode"
|
|
||||||
|
|
||||||
lapi "github.com/filecoin-project/lotus/api"
|
lapi "github.com/filecoin-project/lotus/api"
|
||||||
"github.com/filecoin-project/lotus/build"
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/market"
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
|
||||||
"github.com/filecoin-project/lotus/chain/wallet/key"
|
|
||||||
"github.com/filecoin-project/lotus/itests/kit"
|
"github.com/filecoin-project/lotus/itests/kit"
|
||||||
"github.com/filecoin-project/lotus/node/impl"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestOfflineDealFlow(t *testing.T) {
|
func TestOfflineDealFlow(t *testing.T) {
|
||||||
@ -120,178 +105,3 @@ func TestOfflineDealFlow(t *testing.T) {
|
|||||||
t.Run("fastretrieval", func(t *testing.T) { runTest(t, true, 0) })
|
t.Run("fastretrieval", func(t *testing.T) { runTest(t, true, 0) })
|
||||||
t.Run("fastretrieval", func(t *testing.T) { runTest(t, true, 1024) })
|
t.Run("fastretrieval", func(t *testing.T) { runTest(t, true, 1024) })
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGetAllocationFromDealId(t *testing.T) {
|
|
||||||
ctx := context.Background()
|
|
||||||
|
|
||||||
rootKey, err := key.GenerateKey(types.KTSecp256k1)
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
verifierKey, err := key.GenerateKey(types.KTSecp256k1)
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
verifiedClientKey, err := key.GenerateKey(types.KTBLS)
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
bal, err := types.ParseFIL("100fil")
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
node, miner, ens := kit.EnsembleMinimal(t, kit.MockProofs(),
|
|
||||||
kit.RootVerifier(rootKey, abi.NewTokenAmount(bal.Int64())),
|
|
||||||
kit.Account(verifierKey, abi.NewTokenAmount(bal.Int64())), // assign some balance to the verifier so they can send an AddClient message.
|
|
||||||
kit.Account(verifiedClientKey, abi.NewTokenAmount(bal.Int64())),
|
|
||||||
)
|
|
||||||
|
|
||||||
ens.InterconnectAll().BeginMining(250 * time.Millisecond)
|
|
||||||
|
|
||||||
api := node.FullNode.(*impl.FullNodeAPI)
|
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
|
||||||
defer cancel()
|
|
||||||
|
|
||||||
// get VRH
|
|
||||||
//stm: @CHAIN_STATE_VERIFIED_REGISTRY_ROOT_KEY_001
|
|
||||||
vrh, err := api.StateVerifiedRegistryRootKey(ctx, types.TipSetKey{})
|
|
||||||
fmt.Println(vrh.String())
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
// import the root key.
|
|
||||||
rootAddr, err := api.WalletImport(ctx, &rootKey.KeyInfo)
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
// import the verifier's key.
|
|
||||||
verifierAddr, err := api.WalletImport(ctx, &verifierKey.KeyInfo)
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
// import the verified client's key.
|
|
||||||
verifiedClientAddr, err := api.WalletImport(ctx, &verifiedClientKey.KeyInfo)
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
params, err := actors.SerializeParams(&verifregtypes.AddVerifierParams{Address: verifierAddr, Allowance: big.NewInt(100000000000)})
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
msg := &types.Message{
|
|
||||||
From: rootAddr,
|
|
||||||
To: verifreg.Address,
|
|
||||||
Method: verifreg.Methods.AddVerifier,
|
|
||||||
Params: params,
|
|
||||||
Value: big.Zero(),
|
|
||||||
}
|
|
||||||
|
|
||||||
sm, err := api.MpoolPushMessage(ctx, msg, nil)
|
|
||||||
require.NoError(t, err, "AddVerifier failed")
|
|
||||||
|
|
||||||
//stm: @CHAIN_STATE_WAIT_MSG_001
|
|
||||||
res, err := api.StateWaitMsg(ctx, sm.Cid(), 1, lapi.LookbackNoLimit, true)
|
|
||||||
require.NoError(t, err)
|
|
||||||
require.EqualValues(t, 0, res.Receipt.ExitCode)
|
|
||||||
|
|
||||||
// assign datacap to a client
|
|
||||||
datacap := big.NewInt(10000)
|
|
||||||
|
|
||||||
params, err = actors.SerializeParams(&verifregtypes.AddVerifiedClientParams{Address: verifiedClientAddr, Allowance: datacap})
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
msg = &types.Message{
|
|
||||||
From: verifierAddr,
|
|
||||||
To: verifreg.Address,
|
|
||||||
Method: verifreg.Methods.AddVerifiedClient,
|
|
||||||
Params: params,
|
|
||||||
Value: big.Zero(),
|
|
||||||
}
|
|
||||||
|
|
||||||
sm, err = api.MpoolPushMessage(ctx, msg, nil)
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
//stm: @CHAIN_STATE_WAIT_MSG_001
|
|
||||||
res, err = api.StateWaitMsg(ctx, sm.Cid(), 1, lapi.LookbackNoLimit, true)
|
|
||||||
require.NoError(t, err)
|
|
||||||
require.EqualValues(t, 0, res.Receipt.ExitCode)
|
|
||||||
|
|
||||||
// check datacap balance
|
|
||||||
//stm: @CHAIN_STATE_VERIFIED_CLIENT_STATUS_001
|
|
||||||
dcap, err := api.StateVerifiedClientStatus(ctx, verifiedClientAddr, types.EmptyTSK)
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
if !dcap.Equals(datacap) {
|
|
||||||
t.Fatal("")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create a random file and import on the client.
|
|
||||||
importedFile, _ := node.CreateImportFile(ctx, 1, 200)
|
|
||||||
|
|
||||||
// Get the piece size and commP
|
|
||||||
rootCid := importedFile.Root
|
|
||||||
pieceInfo, err := node.ClientDealPieceCID(ctx, rootCid)
|
|
||||||
require.NoError(t, err)
|
|
||||||
t.Log("FILE CID:", rootCid)
|
|
||||||
|
|
||||||
label, err := markettypes.NewLabelFromString("")
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
dealProposal := markettypes.DealProposal{
|
|
||||||
PieceCID: pieceInfo.PieceCID,
|
|
||||||
PieceSize: pieceInfo.PieceSize,
|
|
||||||
Client: verifiedClientAddr,
|
|
||||||
Provider: miner.ActorAddr,
|
|
||||||
Label: label,
|
|
||||||
StartEpoch: abi.ChainEpoch(1000_000),
|
|
||||||
EndEpoch: abi.ChainEpoch(2000_000),
|
|
||||||
StoragePricePerEpoch: big.Zero(),
|
|
||||||
ProviderCollateral: big.Zero(),
|
|
||||||
ClientCollateral: big.Zero(),
|
|
||||||
VerifiedDeal: true,
|
|
||||||
}
|
|
||||||
|
|
||||||
serializedProposal := new(bytes.Buffer)
|
|
||||||
err = dealProposal.MarshalCBOR(serializedProposal)
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
sig, err := api.WalletSign(ctx, verifiedClientAddr, serializedProposal.Bytes())
|
|
||||||
|
|
||||||
publishDealParams := markettypes.PublishStorageDealsParams{
|
|
||||||
Deals: []markettypes.ClientDealProposal{{
|
|
||||||
Proposal: dealProposal,
|
|
||||||
ClientSignature: crypto.Signature{
|
|
||||||
Type: crypto.SigTypeBLS,
|
|
||||||
Data: sig.Data,
|
|
||||||
},
|
|
||||||
}},
|
|
||||||
}
|
|
||||||
|
|
||||||
serializedParams := new(bytes.Buffer)
|
|
||||||
require.NoError(t, publishDealParams.MarshalCBOR(serializedParams))
|
|
||||||
|
|
||||||
m, err := node.MpoolPushMessage(ctx, &types.Message{
|
|
||||||
To: builtin.StorageMarketActorAddr,
|
|
||||||
From: miner.OwnerKey.Address,
|
|
||||||
Value: types.FromFil(0),
|
|
||||||
Method: builtin.MethodsMarket.PublishStorageDeals,
|
|
||||||
Params: serializedParams.Bytes(),
|
|
||||||
}, nil)
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
r, err := node.StateWaitMsg(ctx, m.Cid(), 2, lapi.LookbackNoLimit, true)
|
|
||||||
require.NoError(t, err)
|
|
||||||
require.Equal(t, exitcode.Ok, r.Receipt.ExitCode)
|
|
||||||
|
|
||||||
ret, err := market.DecodePublishStorageDealsReturn(r.Receipt.Return, build.TestNetworkVersion)
|
|
||||||
require.NoError(t, err)
|
|
||||||
valid, _, err := ret.IsDealValid(0)
|
|
||||||
require.NoError(t, err)
|
|
||||||
require.True(t, valid)
|
|
||||||
dealIds, err := ret.DealIDs()
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
dealInfo, err := api.StateMarketStorageDeal(ctx, dealIds[0], types.EmptyTSK)
|
|
||||||
require.NoError(t, err)
|
|
||||||
require.Equal(t, verifregtypes.AllocationId(0), dealInfo.State.VerifiedClaim) // Allocation in State should not be set yet, because it's in the allocation map
|
|
||||||
|
|
||||||
allocation, err := api.StateGetDealAllocation(ctx, dealIds[0], types.EmptyTSK)
|
|
||||||
require.NoError(t, err)
|
|
||||||
require.Equal(t, dealProposal.PieceCID, allocation.Data)
|
|
||||||
|
|
||||||
// Just another way of getting the allocation if we don't have the deal ID
|
|
||||||
allocation, err = api.StateGetAllocation(ctx, verifiedClientAddr, 3, types.EmptyTSK)
|
|
||||||
require.NoError(t, err)
|
|
||||||
require.Equal(t, dealProposal.PieceCID, allocation.Data)
|
|
||||||
}
|
|
||||||
|
197
itests/pending_deal_allocation_retrieval_test.go
Normal file
197
itests/pending_deal_allocation_retrieval_test.go
Normal file
@ -0,0 +1,197 @@
|
|||||||
|
// stm: #integration
|
||||||
|
package itests
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
|
"github.com/filecoin-project/go-state-types/builtin"
|
||||||
|
markettypes "github.com/filecoin-project/go-state-types/builtin/v9/market"
|
||||||
|
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
||||||
|
"github.com/filecoin-project/go-state-types/crypto"
|
||||||
|
"github.com/filecoin-project/go-state-types/exitcode"
|
||||||
|
|
||||||
|
lapi "github.com/filecoin-project/lotus/api"
|
||||||
|
"github.com/filecoin-project/lotus/build"
|
||||||
|
"github.com/filecoin-project/lotus/chain/actors"
|
||||||
|
"github.com/filecoin-project/lotus/chain/actors/builtin/market"
|
||||||
|
"github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
||||||
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
|
"github.com/filecoin-project/lotus/chain/wallet/key"
|
||||||
|
"github.com/filecoin-project/lotus/itests/kit"
|
||||||
|
"github.com/filecoin-project/lotus/node/impl"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestGetAllocationForPendingDeal(t *testing.T) {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
|
rootKey, err := key.GenerateKey(types.KTSecp256k1)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
verifierKey, err := key.GenerateKey(types.KTSecp256k1)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
verifiedClientKey, err := key.GenerateKey(types.KTBLS)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
bal, err := types.ParseFIL("100fil")
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
node, miner, ens := kit.EnsembleMinimal(t, kit.MockProofs(),
|
||||||
|
kit.RootVerifier(rootKey, abi.NewTokenAmount(bal.Int64())),
|
||||||
|
kit.Account(verifierKey, abi.NewTokenAmount(bal.Int64())), // assign some balance to the verifier so they can send an AddClient message.
|
||||||
|
kit.Account(verifiedClientKey, abi.NewTokenAmount(bal.Int64())),
|
||||||
|
)
|
||||||
|
|
||||||
|
ens.InterconnectAll().BeginMining(250 * time.Millisecond)
|
||||||
|
|
||||||
|
api := node.FullNode.(*impl.FullNodeAPI)
|
||||||
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
// get VRH
|
||||||
|
//stm: @CHAIN_STATE_VERIFIED_REGISTRY_ROOT_KEY_001
|
||||||
|
vrh, err := api.StateVerifiedRegistryRootKey(ctx, types.TipSetKey{})
|
||||||
|
fmt.Println(vrh.String())
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
// import the root key.
|
||||||
|
rootAddr, err := api.WalletImport(ctx, &rootKey.KeyInfo)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
// import the verifier's key.
|
||||||
|
verifierAddr, err := api.WalletImport(ctx, &verifierKey.KeyInfo)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
// import the verified client's key.
|
||||||
|
verifiedClientAddr, err := api.WalletImport(ctx, &verifiedClientKey.KeyInfo)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
params, err := actors.SerializeParams(&verifregtypes.AddVerifierParams{Address: verifierAddr, Allowance: big.NewInt(100000000000)})
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
msg := &types.Message{
|
||||||
|
From: rootAddr,
|
||||||
|
To: verifreg.Address,
|
||||||
|
Method: verifreg.Methods.AddVerifier,
|
||||||
|
Params: params,
|
||||||
|
Value: big.Zero(),
|
||||||
|
}
|
||||||
|
|
||||||
|
sm, err := api.MpoolPushMessage(ctx, msg, nil)
|
||||||
|
require.NoError(t, err, "AddVerifier failed")
|
||||||
|
|
||||||
|
//stm: @CHAIN_STATE_WAIT_MSG_001
|
||||||
|
res, err := api.StateWaitMsg(ctx, sm.Cid(), 1, lapi.LookbackNoLimit, true)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.EqualValues(t, 0, res.Receipt.ExitCode)
|
||||||
|
|
||||||
|
// assign datacap to a client
|
||||||
|
datacap := big.NewInt(10000)
|
||||||
|
|
||||||
|
params, err = actors.SerializeParams(&verifregtypes.AddVerifiedClientParams{Address: verifiedClientAddr, Allowance: datacap})
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
msg = &types.Message{
|
||||||
|
From: verifierAddr,
|
||||||
|
To: verifreg.Address,
|
||||||
|
Method: verifreg.Methods.AddVerifiedClient,
|
||||||
|
Params: params,
|
||||||
|
Value: big.Zero(),
|
||||||
|
}
|
||||||
|
|
||||||
|
sm, err = api.MpoolPushMessage(ctx, msg, nil)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
//stm: @CHAIN_STATE_WAIT_MSG_001
|
||||||
|
res, err = api.StateWaitMsg(ctx, sm.Cid(), 1, lapi.LookbackNoLimit, true)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.EqualValues(t, 0, res.Receipt.ExitCode)
|
||||||
|
|
||||||
|
// check datacap balance
|
||||||
|
//stm: @CHAIN_STATE_VERIFIED_CLIENT_STATUS_001
|
||||||
|
dcap, err := api.StateVerifiedClientStatus(ctx, verifiedClientAddr, types.EmptyTSK)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, *dcap, datacap)
|
||||||
|
|
||||||
|
// Create a random file and import on the client.
|
||||||
|
importedFile, _ := node.CreateImportFile(ctx, 1, 200)
|
||||||
|
|
||||||
|
// Get the piece size and commP
|
||||||
|
rootCid := importedFile.Root
|
||||||
|
pieceInfo, err := node.ClientDealPieceCID(ctx, rootCid)
|
||||||
|
require.NoError(t, err)
|
||||||
|
t.Log("FILE CID:", rootCid)
|
||||||
|
|
||||||
|
label, err := markettypes.NewLabelFromString("")
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
dealProposal := markettypes.DealProposal{
|
||||||
|
PieceCID: pieceInfo.PieceCID,
|
||||||
|
PieceSize: pieceInfo.PieceSize,
|
||||||
|
Client: verifiedClientAddr,
|
||||||
|
Provider: miner.ActorAddr,
|
||||||
|
Label: label,
|
||||||
|
StartEpoch: abi.ChainEpoch(1000_000),
|
||||||
|
EndEpoch: abi.ChainEpoch(2000_000),
|
||||||
|
StoragePricePerEpoch: big.Zero(),
|
||||||
|
ProviderCollateral: big.Zero(),
|
||||||
|
ClientCollateral: big.Zero(),
|
||||||
|
VerifiedDeal: true,
|
||||||
|
}
|
||||||
|
|
||||||
|
serializedProposal := new(bytes.Buffer)
|
||||||
|
err = dealProposal.MarshalCBOR(serializedProposal)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
sig, err := api.WalletSign(ctx, verifiedClientAddr, serializedProposal.Bytes())
|
||||||
|
|
||||||
|
publishDealParams := markettypes.PublishStorageDealsParams{
|
||||||
|
Deals: []markettypes.ClientDealProposal{{
|
||||||
|
Proposal: dealProposal,
|
||||||
|
ClientSignature: crypto.Signature{
|
||||||
|
Type: crypto.SigTypeBLS,
|
||||||
|
Data: sig.Data,
|
||||||
|
},
|
||||||
|
}},
|
||||||
|
}
|
||||||
|
|
||||||
|
serializedParams := new(bytes.Buffer)
|
||||||
|
require.NoError(t, publishDealParams.MarshalCBOR(serializedParams))
|
||||||
|
|
||||||
|
m, err := node.MpoolPushMessage(ctx, &types.Message{
|
||||||
|
To: builtin.StorageMarketActorAddr,
|
||||||
|
From: miner.OwnerKey.Address,
|
||||||
|
Value: types.FromFil(0),
|
||||||
|
Method: builtin.MethodsMarket.PublishStorageDeals,
|
||||||
|
Params: serializedParams.Bytes(),
|
||||||
|
}, nil)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
r, err := node.StateWaitMsg(ctx, m.Cid(), 2, lapi.LookbackNoLimit, true)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, exitcode.Ok, r.Receipt.ExitCode)
|
||||||
|
|
||||||
|
ret, err := market.DecodePublishStorageDealsReturn(r.Receipt.Return, build.TestNetworkVersion)
|
||||||
|
require.NoError(t, err)
|
||||||
|
valid, _, err := ret.IsDealValid(0)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.True(t, valid)
|
||||||
|
dealIds, err := ret.DealIDs()
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
dealInfo, err := api.StateMarketStorageDeal(ctx, dealIds[0], types.EmptyTSK)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, verifregtypes.AllocationId(0), dealInfo.State.VerifiedClaim) // Allocation in State should not be set yet, because it's in the allocation map
|
||||||
|
|
||||||
|
allocation, err := api.StateGetAllocationForPendingDeal(ctx, dealIds[0], types.EmptyTSK)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, dealProposal.PieceCID, allocation.Data)
|
||||||
|
}
|
@ -123,10 +123,7 @@ func TestVerifiedClientTopUp(t *testing.T) {
|
|||||||
//stm: @CHAIN_STATE_VERIFIED_CLIENT_STATUS_001
|
//stm: @CHAIN_STATE_VERIFIED_CLIENT_STATUS_001
|
||||||
dcap, err := api.StateVerifiedClientStatus(ctx, verifiedClientAddr, types.EmptyTSK)
|
dcap, err := api.StateVerifiedClientStatus(ctx, verifiedClientAddr, types.EmptyTSK)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, *dcap, datacap)
|
||||||
if !dcap.Equals(datacap) {
|
|
||||||
t.Fatal("")
|
|
||||||
}
|
|
||||||
|
|
||||||
// try to assign datacap to the same client should fail for actor v4 and below
|
// try to assign datacap to the same client should fail for actor v4 and below
|
||||||
params, err = actors.SerializeParams(&verifregst.AddVerifiedClientParams{Address: verifiedClientAddr, Allowance: datacap})
|
params, err = actors.SerializeParams(&verifregst.AddVerifiedClientParams{Address: verifiedClientAddr, Allowance: datacap})
|
||||||
@ -280,10 +277,7 @@ func TestRemoveDataCap(t *testing.T) {
|
|||||||
//stm: @CHAIN_STATE_VERIFIED_CLIENT_STATUS_001
|
//stm: @CHAIN_STATE_VERIFIED_CLIENT_STATUS_001
|
||||||
dcap, err := api.StateVerifiedClientStatus(ctx, verifiedClientAddr, types.EmptyTSK)
|
dcap, err := api.StateVerifiedClientStatus(ctx, verifiedClientAddr, types.EmptyTSK)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, *dcap, datacap)
|
||||||
if !dcap.Equals(datacap) {
|
|
||||||
t.Fatal("unexpected datacap")
|
|
||||||
}
|
|
||||||
|
|
||||||
// helper to create removedatacap message
|
// helper to create removedatacap message
|
||||||
makeRemoveDatacapMsg := func(removeDatacap big.Int, proposalID uint64) *types.Message {
|
makeRemoveDatacapMsg := func(removeDatacap big.Int, proposalID uint64) *types.Message {
|
||||||
@ -354,10 +348,7 @@ func TestRemoveDataCap(t *testing.T) {
|
|||||||
//stm: @CHAIN_STATE_VERIFIED_CLIENT_STATUS_001
|
//stm: @CHAIN_STATE_VERIFIED_CLIENT_STATUS_001
|
||||||
dcap, err = api.StateVerifiedClientStatus(ctx, verifiedClientAddr, types.EmptyTSK)
|
dcap, err = api.StateVerifiedClientStatus(ctx, verifiedClientAddr, types.EmptyTSK)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, *dcap, big.Sub(datacap, removeDatacap))
|
||||||
if !dcap.Equals(big.Sub(datacap, removeDatacap)) {
|
|
||||||
t.Fatal("unexpected datacap")
|
|
||||||
}
|
|
||||||
|
|
||||||
// now take away the second half!
|
// now take away the second half!
|
||||||
|
|
||||||
|
@ -771,7 +771,7 @@ func (m *StateModule) StateMarketStorageDeal(ctx context.Context, dealId abi.Dea
|
|||||||
return stmgr.GetStorageDeal(ctx, m.StateManager, dealId, ts)
|
return stmgr.GetStorageDeal(ctx, m.StateManager, dealId, ts)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *StateAPI) StateGetDealAllocation(ctx context.Context, dealId abi.DealID, tsk types.TipSetKey) (*verifregtypes.Allocation, error) {
|
func (a *StateAPI) StateGetAllocationForPendingDeal(ctx context.Context, dealId abi.DealID, tsk types.TipSetKey) (*verifregtypes.Allocation, error) {
|
||||||
ts, err := a.Chain.GetTipSetFromKey(ctx, tsk)
|
ts, err := a.Chain.GetTipSetFromKey(ctx, tsk)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, xerrors.Errorf("loading tipset %s: %w", tsk, err)
|
return nil, xerrors.Errorf("loading tipset %s: %w", tsk, err)
|
||||||
@ -782,7 +782,7 @@ func (a *StateAPI) StateGetDealAllocation(ctx context.Context, dealId abi.DealID
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
allocationId, err := st.GetAllocationId(dealId)
|
allocationId, err := st.GetAllocationIdForPendingDeal(dealId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -795,8 +795,8 @@ func (a *StateAPI) StateGetDealAllocation(ctx context.Context, dealId abi.DealID
|
|||||||
return a.StateGetAllocation(ctx, dealState.Proposal.Client, allocationId, tsk)
|
return a.StateGetAllocation(ctx, dealState.Proposal.Client, allocationId, tsk)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *StateAPI) StateGetAllocation(ctx context.Context, addr address.Address, allocationId verifregtypes.AllocationId, tsk types.TipSetKey) (*verifregtypes.Allocation, error) {
|
func (a *StateAPI) StateGetAllocation(ctx context.Context, clientAddr address.Address, allocationId verifregtypes.AllocationId, tsk types.TipSetKey) (*verifregtypes.Allocation, error) {
|
||||||
idAddr, err := a.StateLookupID(ctx, addr, tsk)
|
idAddr, err := a.StateLookupID(ctx, clientAddr, tsk)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user