diff --git a/api/version.go b/api/version.go index 687f5135a..ef59dd104 100644 --- a/api/version.go +++ b/api/version.go @@ -54,8 +54,8 @@ func VersionForType(nodeType NodeType) (Version, error) { // semver versions of the rpc api exposed var ( - FullAPIVersion0 = newVer(1, 3, 0) - FullAPIVersion1 = newVer(2, 1, 0) + FullAPIVersion0 = newVer(1, 3, 1) + FullAPIVersion1 = newVer(2, 1, 1) MinerAPIVersion0 = newVer(1, 2, 0) WorkerAPIVersion0 = newVer(1, 1, 0) diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index 56feb6ee5..92465d5a7 100644 Binary files a/build/openrpc/full.json.gz and b/build/openrpc/full.json.gz differ diff --git a/build/openrpc/worker.json.gz b/build/openrpc/worker.json.gz index 593a45b6a..9c570804e 100644 Binary files a/build/openrpc/worker.json.gz and b/build/openrpc/worker.json.gz differ diff --git a/build/params_2k.go b/build/params_2k.go index 387d2da0b..a1ccb0ce3 100644 --- a/build/params_2k.go +++ b/build/params_2k.go @@ -28,18 +28,19 @@ var UpgradeAssemblyHeight = abi.ChainEpoch(-5) var UpgradeLiftoffHeight = abi.ChainEpoch(-6) var UpgradeKumquatHeight = abi.ChainEpoch(-7) -var UpgradeCalicoHeight = abi.ChainEpoch(-8) -var UpgradePersianHeight = abi.ChainEpoch(-9) -var UpgradeOrangeHeight = abi.ChainEpoch(-10) -var UpgradeClausHeight = abi.ChainEpoch(-11) +var UpgradePricelistOopsHeight = abi.ChainEpoch(-8) +var UpgradeCalicoHeight = abi.ChainEpoch(-9) +var UpgradePersianHeight = abi.ChainEpoch(-10) +var UpgradeOrangeHeight = abi.ChainEpoch(-11) +var UpgradeClausHeight = abi.ChainEpoch(-12) -var UpgradeTrustHeight = abi.ChainEpoch(-12) +var UpgradeTrustHeight = abi.ChainEpoch(-13) -var UpgradeNorwegianHeight = abi.ChainEpoch(-13) +var UpgradeNorwegianHeight = abi.ChainEpoch(-14) -var UpgradeTurboHeight = abi.ChainEpoch(-14) +var UpgradeTurboHeight = abi.ChainEpoch(-15) -var UpgradeHyperdriveHeight = abi.ChainEpoch(-15) +var UpgradeHyperdriveHeight = abi.ChainEpoch(-16) var DrandSchedule = map[abi.ChainEpoch]DrandEnum{ 0: DrandMainnet, diff --git a/build/params_butterfly.go b/build/params_butterfly.go index 258f6ab0f..835c7dc7a 100644 --- a/build/params_butterfly.go +++ b/build/params_butterfly.go @@ -28,6 +28,7 @@ var UpgradeAssemblyHeight = abi.ChainEpoch(30) const UpgradeTapeHeight = 60 const UpgradeLiftoffHeight = -5 const UpgradeKumquatHeight = 90 +const UpgradePricelistOopsHeight = 119 const UpgradeCalicoHeight = 120 const UpgradePersianHeight = 150 const UpgradeClausHeight = 180 diff --git a/build/params_calibnet.go b/build/params_calibnet.go index df334a516..fe871bcca 100644 --- a/build/params_calibnet.go +++ b/build/params_calibnet.go @@ -33,6 +33,8 @@ const UpgradeLiftoffHeight = -5 const UpgradeKumquatHeight = 90 +const UpgradePricelistOopsHeight = 119 + const UpgradeCalicoHeight = 120 const UpgradePersianHeight = UpgradeCalicoHeight + (builtin2.EpochsInHour * 1) diff --git a/build/params_interop.go b/build/params_interop.go index 73cc1c7d9..b5e49577d 100644 --- a/build/params_interop.go +++ b/build/params_interop.go @@ -31,18 +31,19 @@ var UpgradeAssemblyHeight = abi.ChainEpoch(-5) var UpgradeLiftoffHeight = abi.ChainEpoch(-6) var UpgradeKumquatHeight = abi.ChainEpoch(-7) -var UpgradeCalicoHeight = abi.ChainEpoch(-8) -var UpgradePersianHeight = abi.ChainEpoch(-9) -var UpgradeOrangeHeight = abi.ChainEpoch(-10) -var UpgradeClausHeight = abi.ChainEpoch(-11) +var UpgradePricelistOopsHeight = abi.ChainEpoch(-8) +var UpgradeCalicoHeight = abi.ChainEpoch(-9) +var UpgradePersianHeight = abi.ChainEpoch(-10) +var UpgradeOrangeHeight = abi.ChainEpoch(-11) +var UpgradeClausHeight = abi.ChainEpoch(-12) -var UpgradeTrustHeight = abi.ChainEpoch(-12) +var UpgradeTrustHeight = abi.ChainEpoch(-13) -var UpgradeNorwegianHeight = abi.ChainEpoch(-13) +var UpgradeNorwegianHeight = abi.ChainEpoch(-14) -var UpgradeTurboHeight = abi.ChainEpoch(-14) +var UpgradeTurboHeight = abi.ChainEpoch(-15) -var UpgradeHyperdriveHeight = abi.ChainEpoch(-15) +var UpgradeHyperdriveHeight = abi.ChainEpoch(-16) var DrandSchedule = map[abi.ChainEpoch]DrandEnum{ 0: DrandMainnet, diff --git a/build/params_mainnet.go b/build/params_mainnet.go index 1c9b69462..c9750b6e6 100644 --- a/build/params_mainnet.go +++ b/build/params_mainnet.go @@ -45,6 +45,7 @@ const UpgradeLiftoffHeight = 148888 const UpgradeKumquatHeight = 170000 +const UpgradePricelistOopsHeight = 265199 const UpgradeCalicoHeight = 265200 const UpgradePersianHeight = UpgradeCalicoHeight + (builtin2.EpochsInHour * 60) diff --git a/build/params_nerpanet.go b/build/params_nerpanet.go index 6663a9162..d0d99ece4 100644 --- a/build/params_nerpanet.go +++ b/build/params_nerpanet.go @@ -32,6 +32,7 @@ const UpgradeTapeHeight = 60 const UpgradeKumquatHeight = 90 +const UpgradePricelistOopsHeight = 99 const UpgradeCalicoHeight = 100 const UpgradePersianHeight = UpgradeCalicoHeight + (builtin2.EpochsInHour * 1) diff --git a/build/params_testground.go b/build/params_testground.go index 252d23e75..b12df11e7 100644 --- a/build/params_testground.go +++ b/build/params_testground.go @@ -82,21 +82,22 @@ var ( UpgradeBreezeHeight abi.ChainEpoch = -1 BreezeGasTampingDuration abi.ChainEpoch = 0 - UpgradeSmokeHeight abi.ChainEpoch = -1 - UpgradeIgnitionHeight abi.ChainEpoch = -2 - UpgradeRefuelHeight abi.ChainEpoch = -3 - UpgradeTapeHeight abi.ChainEpoch = -4 - UpgradeAssemblyHeight abi.ChainEpoch = 10 - UpgradeLiftoffHeight abi.ChainEpoch = -5 - UpgradeKumquatHeight abi.ChainEpoch = -6 - UpgradeCalicoHeight abi.ChainEpoch = -7 - UpgradePersianHeight abi.ChainEpoch = -8 - UpgradeOrangeHeight abi.ChainEpoch = -9 - UpgradeClausHeight abi.ChainEpoch = -10 - UpgradeTrustHeight abi.ChainEpoch = -11 - UpgradeNorwegianHeight abi.ChainEpoch = -12 - UpgradeTurboHeight abi.ChainEpoch = -13 - UpgradeHyperdriveHeight abi.ChainEpoch = -13 + UpgradeSmokeHeight abi.ChainEpoch = -1 + UpgradeIgnitionHeight abi.ChainEpoch = -2 + UpgradeRefuelHeight abi.ChainEpoch = -3 + UpgradeTapeHeight abi.ChainEpoch = -4 + UpgradeAssemblyHeight abi.ChainEpoch = 10 + UpgradeLiftoffHeight abi.ChainEpoch = -5 + UpgradeKumquatHeight abi.ChainEpoch = -6 + UpgradePricelistOopsHeight abi.ChainEpoch = -7 + UpgradeCalicoHeight abi.ChainEpoch = -8 + UpgradePersianHeight abi.ChainEpoch = -9 + UpgradeOrangeHeight abi.ChainEpoch = -10 + UpgradeClausHeight abi.ChainEpoch = -11 + UpgradeTrustHeight abi.ChainEpoch = -12 + UpgradeNorwegianHeight abi.ChainEpoch = -13 + UpgradeTurboHeight abi.ChainEpoch = -14 + UpgradeHyperdriveHeight abi.ChainEpoch = -15 DrandSchedule = map[abi.ChainEpoch]DrandEnum{ 0: DrandMainnet, diff --git a/chain/actors/version.go b/chain/actors/version.go index 9710e62fa..778fbda9d 100644 --- a/chain/actors/version.go +++ b/chain/actors/version.go @@ -25,7 +25,7 @@ func VersionForNetwork(version network.Version) Version { switch version { case network.Version0, network.Version1, network.Version2, network.Version3: return Version0 - case network.Version4, network.Version5, network.Version6, network.Version7, network.Version8, network.Version9: + case network.Version4, network.Version5, network.Version6, network.Version6AndAHalf, network.Version7, network.Version8, network.Version9: return Version2 case network.Version10, network.Version11: return Version3 diff --git a/chain/messagepool/check.go b/chain/messagepool/check.go index 11203e7df..9a55c283c 100644 --- a/chain/messagepool/check.go +++ b/chain/messagepool/check.go @@ -11,7 +11,6 @@ import ( "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-state-types/big" "github.com/filecoin-project/lotus/api" - "github.com/filecoin-project/lotus/build" "github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/chain/vm" ) @@ -259,8 +258,14 @@ func (mp *MessagePool) checkMessages(ctx context.Context, msgs []*types.Message, Code: api.CheckStatusMessageValidity, }, } - - if err := m.ValidForBlockInclusion(0, build.NewestNetworkVersion); err != nil { + nv, err := mp.getNtwkVersion(epoch) + if err != nil { + check.OK = false + check.Err = fmt.Sprintf("error retrieving network version: %s", err.Error()) + } else { + check.OK = true + } + if err := m.ValidForBlockInclusion(0, nv); err != nil { check.OK = false check.Err = fmt.Sprintf("syntactically invalid message: %s", err.Error()) } else { @@ -276,7 +281,7 @@ func (mp *MessagePool) checkMessages(ctx context.Context, msgs []*types.Message, // gas checks // 4. Min Gas - minGas := vm.PricelistByEpoch(epoch).OnChainMessage(m.ChainLength()) + minGas := vm.PricelistByVersion(nv).OnChainMessage(m.ChainLength()) check = api.MessageCheckStatus{ Cid: m.Cid(), diff --git a/chain/messagepool/messagepool.go b/chain/messagepool/messagepool.go index f6c8e3ac9..175cda9ff 100644 --- a/chain/messagepool/messagepool.go +++ b/chain/messagepool/messagepool.go @@ -14,6 +14,7 @@ import ( "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/big" "github.com/filecoin-project/go-state-types/crypto" + "github.com/filecoin-project/go-state-types/network" "github.com/hashicorp/go-multierror" lru "github.com/hashicorp/golang-lru" "github.com/ipfs/go-cid" @@ -29,6 +30,7 @@ import ( "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/build" + "github.com/filecoin-project/lotus/chain/stmgr" "github.com/filecoin-project/lotus/chain/store" "github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/chain/vm" @@ -147,6 +149,8 @@ type MessagePool struct { minGasPrice types.BigInt + getNtwkVersion func(abi.ChainEpoch) (network.Version, error) + currentSize int // pruneTrigger is a channel used to trigger a mempool pruning @@ -362,26 +366,28 @@ func New(api Provider, ds dtypes.MetadataDS, netName dtypes.NetworkName, j journ if j == nil { j = journal.NilJournal() } + us := stmgr.DefaultUpgradeSchedule() mp := &MessagePool{ - ds: ds, - addSema: make(chan struct{}, 1), - closer: make(chan struct{}), - repubTk: build.Clock.Ticker(RepublishInterval), - repubTrigger: make(chan struct{}, 1), - localAddrs: make(map[address.Address]struct{}), - pending: make(map[address.Address]*msgSet), - keyCache: make(map[address.Address]address.Address), - minGasPrice: types.NewInt(0), - pruneTrigger: make(chan struct{}, 1), - pruneCooldown: make(chan struct{}, 1), - blsSigCache: cache, - sigValCache: verifcache, - changes: lps.New(50), - localMsgs: namespace.Wrap(ds, datastore.NewKey(localMsgsDs)), - api: api, - netName: netName, - cfg: cfg, + ds: ds, + addSema: make(chan struct{}, 1), + closer: make(chan struct{}), + repubTk: build.Clock.Ticker(RepublishInterval), + repubTrigger: make(chan struct{}, 1), + localAddrs: make(map[address.Address]struct{}), + pending: make(map[address.Address]*msgSet), + keyCache: make(map[address.Address]address.Address), + minGasPrice: types.NewInt(0), + getNtwkVersion: us.GetNtwkVersion, + pruneTrigger: make(chan struct{}, 1), + pruneCooldown: make(chan struct{}, 1), + blsSigCache: cache, + sigValCache: verifcache, + changes: lps.New(50), + localMsgs: namespace.Wrap(ds, datastore.NewKey(localMsgsDs)), + api: api, + netName: netName, + cfg: cfg, evtTypes: [...]journal.EventType{ evtTypeMpoolAdd: j.RegisterEventType("mpool", "add"), evtTypeMpoolRemove: j.RegisterEventType("mpool", "remove"), @@ -610,8 +616,7 @@ func (mp *MessagePool) addLocal(ctx context.Context, m *types.SignedMessage) err // For non local messages, if the message cannot be included in the next 20 blocks it returns // a (soft) validation error. func (mp *MessagePool) verifyMsgBeforeAdd(m *types.SignedMessage, curTs *types.TipSet, local bool) (bool, error) { - epoch := curTs.Height() - minGas := vm.PricelistByEpoch(epoch).OnChainMessage(m.ChainLength()) + minGas := vm.PricelistByVersion(build.NewestNetworkVersion).OnChainMessage(m.ChainLength()) if err := m.VMMessage().ValidForBlockInclusion(minGas.Total(), build.NewestNetworkVersion); err != nil { return false, xerrors.Errorf("message will not be included in a block: %w", err) diff --git a/chain/messagepool/messagepool_test.go b/chain/messagepool/messagepool_test.go index 2ea8fdec0..e57212e7c 100644 --- a/chain/messagepool/messagepool_test.go +++ b/chain/messagepool/messagepool_test.go @@ -287,7 +287,7 @@ func TestCheckMessageBig(t *testing.T) { From: from, Value: types.NewInt(1), Nonce: 0, - GasLimit: 50000000, + GasLimit: 60000000, GasFeeCap: types.NewInt(100), GasPremium: types.NewInt(1), Params: make([]byte, 41<<10), // 41KiB payload diff --git a/chain/messagepool/selection.go b/chain/messagepool/selection.go index 611ab8e5f..60d75a841 100644 --- a/chain/messagepool/selection.go +++ b/chain/messagepool/selection.go @@ -749,7 +749,7 @@ func (mp *MessagePool) createMessageChains(actor address.Address, mset map[uint6 } curNonce++ - minGas := vm.PricelistByEpoch(ts.Height()).OnChainMessage(m.ChainLength()).Total() + minGas := vm.PricelistByVersion(build.NewestNetworkVersion).OnChainMessage(m.ChainLength()).Total() if m.Message.GasLimit < minGas { break } diff --git a/chain/stmgr/forks.go b/chain/stmgr/forks.go index bb87da44c..fb8e407ed 100644 --- a/chain/stmgr/forks.go +++ b/chain/stmgr/forks.go @@ -161,6 +161,10 @@ func DefaultUpgradeSchedule() UpgradeSchedule { Height: build.UpgradeKumquatHeight, Network: network.Version6, Migration: nil, + }, { + Height: build.UpgradePricelistOopsHeight, + Network: network.Version6AndAHalf, + Migration: nil, }, { Height: build.UpgradeCalicoHeight, Network: network.Version7, @@ -292,6 +296,18 @@ func (us UpgradeSchedule) Validate() error { return nil } +func (us UpgradeSchedule) GetNtwkVersion(e abi.ChainEpoch) (network.Version, error) { + // Traverse from newest to oldest returning upgrade active during epoch e + for i := len(us) - 1; i >= 0; i-- { + u := us[i] + // u.Height is the last epoch before u.Network becomes the active version + if u.Height < e { + return u.Network, nil + } + } + return network.Version0, xerrors.Errorf("Epoch %d has no defined network version", e) +} + func (sm *StateManager) handleStateForks(ctx context.Context, root cid.Cid, height abi.ChainEpoch, cb ExecMonitor, ts *types.TipSet) (cid.Cid, error) { retCid := root var err error diff --git a/chain/stmgr/forks_test.go b/chain/stmgr/forks_test.go index 6d22a294d..9caeee51f 100644 --- a/chain/stmgr/forks_test.go +++ b/chain/stmgr/forks_test.go @@ -17,6 +17,7 @@ import ( "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/cbor" + "github.com/filecoin-project/go-state-types/network" builtin0 "github.com/filecoin-project/specs-actors/actors/builtin" init2 "github.com/filecoin-project/specs-actors/v2/actors/builtin/init" @@ -121,7 +122,7 @@ func TestForkHeightTriggers(t *testing.T) { sm, err := NewStateManagerWithUpgradeSchedule( cg.ChainStore(), UpgradeSchedule{{ - Network: 1, + Network: network.Version1, Height: testForkHeight, Migration: func(ctx context.Context, sm *StateManager, cache MigrationCache, cb ExecMonitor, root cid.Cid, height abi.ChainEpoch, ts *types.TipSet) (cid.Cid, error) { @@ -250,7 +251,7 @@ func TestForkRefuseCall(t *testing.T) { sm, err := NewStateManagerWithUpgradeSchedule( cg.ChainStore(), UpgradeSchedule{{ - Network: 1, + Network: network.Version1, Expensive: true, Height: testForkHeight, Migration: func(ctx context.Context, sm *StateManager, cache MigrationCache, cb ExecMonitor, @@ -365,7 +366,7 @@ func TestForkPreMigration(t *testing.T) { sm, err := NewStateManagerWithUpgradeSchedule( cg.ChainStore(), UpgradeSchedule{{ - Network: 1, + Network: network.Version1, Height: testForkHeight, Migration: func(ctx context.Context, sm *StateManager, cache MigrationCache, cb ExecMonitor, root cid.Cid, height abi.ChainEpoch, ts *types.TipSet) (cid.Cid, error) { diff --git a/chain/sync.go b/chain/sync.go index 167856927..5a5362ccd 100644 --- a/chain/sync.go +++ b/chain/sync.go @@ -1054,14 +1054,15 @@ func (syncer *Syncer) checkBlockMessages(ctx context.Context, b *types.FullBlock return xerrors.Errorf("failed to load base state tree: %w", err) } - pl := vm.PricelistByEpoch(baseTs.Height()) + nv := syncer.sm.GetNtwkVersion(ctx, b.Header.Height) + pl := vm.PricelistByVersion(nv) var sumGasLimit int64 checkMsg := func(msg types.ChainMsg) error { m := msg.VMMessage() // Phase 1: syntactic validation, as defined in the spec minGas := pl.OnChainMessage(msg.ChainLength()) - if err := m.ValidForBlockInclusion(minGas.Total(), syncer.sm.GetNtwkVersion(ctx, b.Header.Height)); err != nil { + if err := m.ValidForBlockInclusion(minGas.Total(), nv); err != nil { return err } @@ -1075,7 +1076,7 @@ func (syncer *Syncer) checkBlockMessages(ctx context.Context, b *types.FullBlock // Phase 2: (Partial) semantic validation: // the sender exists and is an account actor, and the nonces make sense var sender address.Address - if syncer.sm.GetNtwkVersion(ctx, b.Header.Height) >= network.Version13 { + if nv >= network.Version13 { sender, err = st.LookupID(m.From) if err != nil { return err diff --git a/chain/vm/gas.go b/chain/vm/gas.go index c860ce9a0..b848550f3 100644 --- a/chain/vm/gas.go +++ b/chain/vm/gas.go @@ -3,12 +3,11 @@ package vm import ( "fmt" - "github.com/filecoin-project/lotus/build" - "github.com/filecoin-project/go-address" addr "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/crypto" + "github.com/filecoin-project/go-state-types/network" vmr5 "github.com/filecoin-project/specs-actors/v5/actors/runtime" proof5 "github.com/filecoin-project/specs-actors/v5/actors/runtime/proof" "github.com/ipfs/go-cid" @@ -80,8 +79,8 @@ type Pricelist interface { OnVerifyConsensusFault() GasCharge } -var prices = map[abi.ChainEpoch]Pricelist{ - abi.ChainEpoch(0): &pricelistV0{ +var prices = map[network.Version]Pricelist{ + network.Version0: &pricelistV0{ computeGasMulti: 1, storageGasMulti: 1000, @@ -130,7 +129,7 @@ var prices = map[abi.ChainEpoch]Pricelist{ verifyPostDiscount: true, verifyConsensusFault: 495422, }, - abi.ChainEpoch(build.UpgradeCalicoHeight): &pricelistV0{ + network.Version6AndAHalf: &pricelistV0{ computeGasMulti: 1, storageGasMulti: 1300, @@ -208,21 +207,19 @@ var prices = map[abi.ChainEpoch]Pricelist{ }, } -// PricelistByEpoch finds the latest prices for the given epoch -func PricelistByEpoch(epoch abi.ChainEpoch) Pricelist { - // since we are storing the prices as map or epoch to price - // we need to get the price with the highest epoch that is lower or equal to the `epoch` arg - bestEpoch := abi.ChainEpoch(0) - bestPrice := prices[bestEpoch] - for e, pl := range prices { - // if `e` happened after `bestEpoch` and `e` is earlier or equal to the target `epoch` - if e > bestEpoch && e <= epoch { - bestEpoch = e +// PricelistByVersion finds the latest prices for the given network version +func PricelistByVersion(version network.Version) Pricelist { + bestVersion := network.Version0 + bestPrice := prices[bestVersion] + for nv, pl := range prices { + // if `nv > bestVersion` and `nv <= version` + if nv > bestVersion && nv <= version { + bestVersion = nv bestPrice = pl } } if bestPrice == nil { - panic(fmt.Sprintf("bad setup: no gas prices available for epoch %d", epoch)) + panic(fmt.Sprintf("bad setup: no gas prices available for version %d", version)) } return bestPrice } diff --git a/chain/vm/mkactor.go b/chain/vm/mkactor.go index 669c1450f..9f277bf3e 100644 --- a/chain/vm/mkactor.go +++ b/chain/vm/mkactor.go @@ -41,7 +41,7 @@ var EmptyObjectCid cid.Cid // TryCreateAccountActor creates account actors from only BLS/SECP256K1 addresses. func TryCreateAccountActor(rt *Runtime, addr address.Address) (*types.Actor, address.Address, aerrors.ActorError) { - if err := rt.chargeGasSafe(PricelistByEpoch(rt.height).OnCreateActor()); err != nil { + if err := rt.chargeGasSafe(PricelistByVersion(rt.NetworkVersion()).OnCreateActor()); err != nil { return nil, address.Undef, err } diff --git a/chain/vm/vm.go b/chain/vm/vm.go index 5a31187b7..2746d5f17 100644 --- a/chain/vm/vm.go +++ b/chain/vm/vm.go @@ -135,7 +135,7 @@ func (vm *VM) makeRuntime(ctx context.Context, msg *types.Message, parent *Runti gasAvailable: msg.GasLimit, depth: 0, numActorsCreated: 0, - pricelist: PricelistByEpoch(vm.blockHeight), + pricelist: PricelistByVersion(vm.ntwkVersion(ctx, vm.blockHeight)), allowInternal: true, callerValidated: false, executionTrace: types.ExecutionTrace{Msg: msg}, @@ -424,7 +424,7 @@ func (vm *VM) ApplyMessage(ctx context.Context, cmsg types.ChainMsg) (*ApplyRet, return nil, err } - pl := PricelistByEpoch(vm.blockHeight) + pl := PricelistByVersion(vm.ntwkVersion(ctx, vm.blockHeight)) msgGas := pl.OnChainMessage(cmsg.ChainLength()) msgGasCost := msgGas.Total() diff --git a/documentation/en/api-v0-methods-miner.md b/documentation/en/api-v0-methods-miner.md index b488e8996..e8598ff0c 100644 --- a/documentation/en/api-v0-methods-miner.md +++ b/documentation/en/api-v0-methods-miner.md @@ -199,7 +199,7 @@ Response: ```json { "Version": "string value", - "APIVersion": 131328, + "APIVersion": 131329, "BlockDelay": 42 } ``` diff --git a/documentation/en/api-v0-methods-worker.md b/documentation/en/api-v0-methods-worker.md index c620113f4..341846759 100644 --- a/documentation/en/api-v0-methods-worker.md +++ b/documentation/en/api-v0-methods-worker.md @@ -144,7 +144,7 @@ Perms: admin Inputs: `null` -Response: `131328` +Response: `131329` ## Add diff --git a/documentation/en/api-v0-methods.md b/documentation/en/api-v0-methods.md index 4466cde8c..bc67382d6 100644 --- a/documentation/en/api-v0-methods.md +++ b/documentation/en/api-v0-methods.md @@ -280,7 +280,7 @@ Response: ```json { "Version": "string value", - "APIVersion": 131328, + "APIVersion": 131329, "BlockDelay": 42 } ``` @@ -4634,7 +4634,7 @@ Inputs: ] ``` -Response: `13` +Response: `1300` ### StateReadState StateReadState returns the indicated actor's state. diff --git a/documentation/en/api-v1-unstable-methods.md b/documentation/en/api-v1-unstable-methods.md index ef151a94d..37389d0a6 100644 --- a/documentation/en/api-v1-unstable-methods.md +++ b/documentation/en/api-v1-unstable-methods.md @@ -282,7 +282,7 @@ Response: ```json { "Version": "string value", - "APIVersion": 131328, + "APIVersion": 131329, "BlockDelay": 42 } ``` @@ -4855,7 +4855,7 @@ Inputs: ] ``` -Response: `13` +Response: `1300` ### StateReadState StateReadState returns the indicated actor's state. diff --git a/go.mod b/go.mod index 198b862e6..9520c8d98 100644 --- a/go.mod +++ b/go.mod @@ -40,7 +40,7 @@ require ( github.com/filecoin-project/go-multistore v0.0.3 github.com/filecoin-project/go-padreader v0.0.0-20200903213702-ed5fae088b20 github.com/filecoin-project/go-paramfetch v0.0.2-0.20210614165157-25a6c7769498 - github.com/filecoin-project/go-state-types v0.1.1-0.20210506134452-99b279731c48 + github.com/filecoin-project/go-state-types v0.1.1-0.20210722133031-ad9bfe54c124 github.com/filecoin-project/go-statemachine v0.0.0-20200925024713-05bd7c71fbfe github.com/filecoin-project/go-statestore v0.1.1 github.com/filecoin-project/go-storedcounter v0.0.0-20200421200003-1c99c62e8a5b @@ -48,7 +48,7 @@ require ( github.com/filecoin-project/specs-actors/v2 v2.3.5 github.com/filecoin-project/specs-actors/v3 v3.1.1 github.com/filecoin-project/specs-actors/v4 v4.0.1 - github.com/filecoin-project/specs-actors/v5 v5.0.1 + github.com/filecoin-project/specs-actors/v5 v5.0.2 github.com/filecoin-project/specs-storage v0.1.1-0.20201105051918-5188d9774506 github.com/filecoin-project/test-vectors/schema v0.0.5 github.com/gbrlsnchs/jwt/v3 v3.0.0-beta.1 diff --git a/go.sum b/go.sum index 2624a0d3f..86ac15b2c 100644 --- a/go.sum +++ b/go.sum @@ -305,8 +305,9 @@ github.com/filecoin-project/go-state-types v0.0.0-20200904021452-1883f36ca2f4/go github.com/filecoin-project/go-state-types v0.0.0-20200928172055-2df22083d8ab/go.mod h1:ezYnPf0bNkTsDibL/psSz5dy4B5awOJ/E7P2Saeep8g= github.com/filecoin-project/go-state-types v0.0.0-20201102161440-c8033295a1fc/go.mod h1:ezYnPf0bNkTsDibL/psSz5dy4B5awOJ/E7P2Saeep8g= github.com/filecoin-project/go-state-types v0.1.0/go.mod h1:ezYnPf0bNkTsDibL/psSz5dy4B5awOJ/E7P2Saeep8g= -github.com/filecoin-project/go-state-types v0.1.1-0.20210506134452-99b279731c48 h1:Jc4OprDp3bRDxbsrXNHPwJabZJM3iDy+ri8/1e0ZnX4= github.com/filecoin-project/go-state-types v0.1.1-0.20210506134452-99b279731c48/go.mod h1:ezYnPf0bNkTsDibL/psSz5dy4B5awOJ/E7P2Saeep8g= +github.com/filecoin-project/go-state-types v0.1.1-0.20210722133031-ad9bfe54c124 h1:veGrNABg/9I7prngrowkhwbvW5d5JN55MNKmbsr5FqA= +github.com/filecoin-project/go-state-types v0.1.1-0.20210722133031-ad9bfe54c124/go.mod h1:ezYnPf0bNkTsDibL/psSz5dy4B5awOJ/E7P2Saeep8g= github.com/filecoin-project/go-statemachine v0.0.0-20200925024713-05bd7c71fbfe h1:dF8u+LEWeIcTcfUcCf3WFVlc81Fr2JKg8zPzIbBDKDw= github.com/filecoin-project/go-statemachine v0.0.0-20200925024713-05bd7c71fbfe/go.mod h1:FGwQgZAt2Gh5mjlwJUlVB62JeYdo+if0xWxSEfBD9ig= github.com/filecoin-project/go-statestore v0.1.0/go.mod h1:LFc9hD+fRxPqiHiaqUEZOinUJB4WARkRfNl10O7kTnI= @@ -331,8 +332,8 @@ github.com/filecoin-project/specs-actors/v4 v4.0.0/go.mod h1:TkHXf/l7Wyw4ZejyXIP github.com/filecoin-project/specs-actors/v4 v4.0.1 h1:AiWrtvJZ63MHGe6rn7tPu4nSUY8bA1KDNszqJaD5+Fg= github.com/filecoin-project/specs-actors/v4 v4.0.1/go.mod h1:TkHXf/l7Wyw4ZejyXIPS2rK8bBO0rdwhTZyQQgaglng= github.com/filecoin-project/specs-actors/v5 v5.0.0-20210512015452-4fe3889fff57/go.mod h1:283yBMMUSDB2abcjP/hhrwTkhb9h3sfM6KGrep/ZlBI= -github.com/filecoin-project/specs-actors/v5 v5.0.1 h1:PrYm5AKdMlJ/55eRW5laWcnaX66gyyDYBWvH38kNAMo= -github.com/filecoin-project/specs-actors/v5 v5.0.1/go.mod h1:74euMDIXorusOBs/QL/LNkYsXZdDpLJwojWw6T03pdE= +github.com/filecoin-project/specs-actors/v5 v5.0.2 h1:pLNFUt9xtFuhrgZZ0tPnzGchAVu4koyCRIopzkx/OP0= +github.com/filecoin-project/specs-actors/v5 v5.0.2/go.mod h1:E0yeEl6Scl6eWeeWmxwQsAufvOAC72H6ELyh2Y62H90= github.com/filecoin-project/specs-storage v0.1.1-0.20201105051918-5188d9774506 h1:Ur/l2+6qN+lQiqjozWWc5p9UDaAMDZKTlDS98oRnlIw= github.com/filecoin-project/specs-storage v0.1.1-0.20201105051918-5188d9774506/go.mod h1:nJRRM7Aa9XVvygr3W9k6xGF46RWzr2zxF/iGoAIfA/g= github.com/filecoin-project/test-vectors/schema v0.0.5 h1:w3zHQhzM4pYxJDl21avXjOKBLF8egrvwUwjpT8TquDg=