Merge pull request #4835 from filecoin-project/feat/fast-pred-wrap
predicates: Fast StateGetActor wrapper
This commit is contained in:
commit
41af94f1b7
34
chain/events/state/fastapi.go
Normal file
34
chain/events/state/fastapi.go
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
package state
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/filecoin-project/go-address"
|
||||||
|
|
||||||
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
|
)
|
||||||
|
|
||||||
|
type FastChainApiAPI interface {
|
||||||
|
ChainAPI
|
||||||
|
|
||||||
|
ChainGetTipSet(context.Context, types.TipSetKey) (*types.TipSet, error)
|
||||||
|
}
|
||||||
|
|
||||||
|
type fastAPI struct {
|
||||||
|
FastChainApiAPI
|
||||||
|
}
|
||||||
|
|
||||||
|
func WrapFastAPI(api FastChainApiAPI) ChainAPI {
|
||||||
|
return &fastAPI{
|
||||||
|
api,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *fastAPI) StateGetActor(ctx context.Context, actor address.Address, tsk types.TipSetKey) (*types.Actor, error) {
|
||||||
|
ts, err := a.FastChainApiAPI.ChainGetTipSet(ctx, tsk)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return a.FastChainApiAPI.StateGetActor(ctx, actor, ts.Parents())
|
||||||
|
}
|
@ -57,7 +57,7 @@ func NewClientNodeAdapter(stateapi full.StateAPI, chain full.ChainAPI, mpool ful
|
|||||||
|
|
||||||
fundmgr: fundmgr,
|
fundmgr: fundmgr,
|
||||||
ev: events.NewEvents(context.TODO(), capi),
|
ev: events.NewEvents(context.TODO(), capi),
|
||||||
dsMatcher: newDealStateMatcher(state.NewStatePredicates(capi)),
|
dsMatcher: newDealStateMatcher(state.NewStatePredicates(state.WrapFastAPI(capi))),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ func NewProviderNodeAdapter(fc *config.MinerFeeConfig) func(dag dtypes.StagingDA
|
|||||||
dag: dag,
|
dag: dag,
|
||||||
secb: secb,
|
secb: secb,
|
||||||
ev: events.NewEvents(context.TODO(), full),
|
ev: events.NewEvents(context.TODO(), full),
|
||||||
dsMatcher: newDealStateMatcher(state.NewStatePredicates(full)),
|
dsMatcher: newDealStateMatcher(state.NewStatePredicates(state.WrapFastAPI(full))),
|
||||||
}
|
}
|
||||||
if fc != nil {
|
if fc != nil {
|
||||||
na.publishSpec = &api.MessageSendSpec{MaxFee: abi.TokenAmount(fc.MaxPublishDealsFee)}
|
na.publishSpec = &api.MessageSendSpec{MaxFee: abi.TokenAmount(fc.MaxPublishDealsFee)}
|
||||||
|
Loading…
Reference in New Issue
Block a user