Skip to content

Commit bf4cf7d

Browse files
Add changelog and move arbos version preset to testContext
1 parent 0fdbcee commit bf4cf7d

File tree

5 files changed

+30
-34
lines changed

5 files changed

+30
-34
lines changed

changelog/mrogachev-nit-4152.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### Added
2+
- Add static backlog update cost for L2 pricing
3+
4+
### Removed
5+
- Remove manual backlog update cost calculation for multi-gas multi constraints pricer
6+
7+
### Changed
8+
- Move multi constraints pricer version constants to go-ethereum/params/config_arbitrum.go
9+
- Make backlog update cost static, starting from ArbosVersion_MultiGasConstraintsVersion
10+
- Move arbos version preset to testContext
11+
12+
### Fixed
13+
- Fix flaky TestMultiGasConstraintsStorage

precompiles/ArbOwner.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,7 @@ func (con ArbOwner) SetGasPricingConstraints(c ctx, evm mech, constraints [][3]u
468468
}
469469

470470
arbosVersion := c.State.ArbOSVersion()
471-
if arbosVersion >= params.ArbosVersion_MultiConstraintFix && arbosVersion < params.ArbosVersion_60 {
471+
if arbosVersion >= params.ArbosVersion_MultiConstraintFix && arbosVersion < params.ArbosVersion_MultiGasConstraintsVersion {
472472
limit := l2pricing.GasConstraintsMaxNum
473473
if len(constraints) > limit {
474474
return fmt.Errorf("too many constraints. Max: %d", limit)

precompiles/ArbRetryableTx_test.go

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import (
1414
"github.com/ethereum/go-ethereum/params"
1515

1616
"github.com/offchainlabs/nitro/arbos"
17-
"github.com/offchainlabs/nitro/arbos/burn"
1817
"github.com/offchainlabs/nitro/arbos/l2pricing"
1918
"github.com/offchainlabs/nitro/arbos/storage"
2019
"github.com/offchainlabs/nitro/solgen/go/precompilesgen"
@@ -103,14 +102,6 @@ func testRetryableRedeem(t *testing.T, evm *vm.EVM, precompileCtx *Context) {
103102
}
104103
}
105104

106-
func overrideStateArbOSVersion(evm *vm.EVM, arbosVersion uint64) error {
107-
versionSlot := uint64(0)
108-
version := new(big.Int).SetUint64(arbosVersion)
109-
burner := burn.NewSystemBurner(nil, false)
110-
sto := storage.NewGeth(evm.StateDB, burner)
111-
return sto.SetByUint64(versionSlot, common.BigToHash(version))
112-
}
113-
114105
func TestRetryableRedeemLegacy(t *testing.T) {
115106
evm := newMockEVMForTesting()
116107
precompileCtx := testContext(common.Address{}, evm)
@@ -126,10 +117,8 @@ func TestRetryableRedeemLegacy(t *testing.T) {
126117
}
127118

128119
func TestRetryableRedeemLegacyArbOS60(t *testing.T) {
129-
evm := newMockEVMForTesting()
130-
err := overrideStateArbOSVersion(evm, params.ArbosVersion_MultiGasConstraintsVersion)
131-
Require(t, err)
132-
120+
arbosVersion := params.ArbosVersion_MultiGasConstraintsVersion
121+
evm := newMockEVMForTestingWithVersion(&arbosVersion)
133122
precompileCtx := testContext(common.Address{}, evm)
134123

135124
model, err := precompileCtx.State.L2PricingState().GasModelToUse()
@@ -165,10 +154,9 @@ func TestRetryableRedeemWithGasConstraints(t *testing.T) {
165154
testRetryableRedeem(t, evm, precompileCtx)
166155
}
167156

168-
func TestRetryableRedeemWithGasConstraintsArbOS60(t *testing.T) {
169-
evm := newMockEVMForTesting()
170-
err := overrideStateArbOSVersion(evm, params.ArbosVersion_MultiGasConstraintsVersion)
171-
Require(t, err)
157+
func TestRetryableRedeemWithGasConstraintsArbOSMultiGasConstraintsVersion(t *testing.T) {
158+
arbosVersion := params.ArbosVersion_MultiGasConstraintsVersion
159+
evm := newMockEVMForTestingWithVersion(&arbosVersion)
172160

173161
precompileCtx := testContext(common.Address{}, evm)
174162

@@ -192,9 +180,8 @@ func TestRetryableRedeemWithGasConstraintsArbOS60(t *testing.T) {
192180
}
193181

194182
func TestRetryableRedeemWithMultiGasConstraints(t *testing.T) {
195-
evm := newMockEVMForTesting()
196-
err := overrideStateArbOSVersion(evm, params.ArbosVersion_MultiGasConstraintsVersion)
197-
Require(t, err)
183+
arbosVersion := params.ArbosVersion_MultiGasConstraintsVersion
184+
evm := newMockEVMForTestingWithVersion(&arbosVersion)
198185

199186
precompileCtx := testContext(common.Address{}, evm)
200187

@@ -215,7 +202,7 @@ func TestRetryableRedeemWithMultiGasConstraints(t *testing.T) {
215202
uint8(multigas.ResourceKindWasmComputation): 6,
216203
}
217204

218-
err = precompileCtx.State.L2PricingState().AddMultiGasConstraint(target, window, backlog, weights)
205+
err := precompileCtx.State.L2PricingState().AddMultiGasConstraint(target, window, backlog, weights)
219206
Require(t, err)
220207
}
221208

precompiles/context.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"github.com/offchainlabs/nitro/arbos"
1616
"github.com/offchainlabs/nitro/arbos/arbosState"
1717
"github.com/offchainlabs/nitro/arbos/burn"
18+
"github.com/offchainlabs/nitro/arbos/storage"
1819
"github.com/offchainlabs/nitro/arbos/util"
1920
)
2021

@@ -99,6 +100,13 @@ func testContext(caller addr, evm mech) *Context {
99100
tracingInfo: tracingInfo,
100101
readOnly: false,
101102
}
103+
104+
versionOffset := uint64(0)
105+
versionValue := new(big.Int).SetUint64(evm.ChainConfig().ArbitrumChainParams.InitialArbOSVersion)
106+
burner := burn.NewSystemBurner(nil, false)
107+
backingStorage := storage.NewGeth(evm.StateDB, burner)
108+
_ = backingStorage.SetByUint64(versionOffset, common.BigToHash(versionValue))
109+
102110
state, err := arbosState.OpenArbosState(evm.StateDB, burn.NewSystemBurner(tracingInfo, false))
103111
if err != nil {
104112
panic("unable to open arbos state :" + err.Error())

system_tests/retryable_test.go

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1297,22 +1297,10 @@ func TestL1FundedUnsignedTransaction(t *testing.T) {
12971297
}
12981298

12991299
func TestRetryableSubmissionAndRedeemFees(t *testing.T) {
1300-
testRetryableSubmissionAndRedeemFees(t, nil)
1301-
}
1302-
1303-
func TestRetryableSubmissionAndRedeemFeesArbOS60(t *testing.T) {
1304-
version := params.ArbosVersion_60
1305-
testRetryableSubmissionAndRedeemFees(t, &version)
1306-
}
1307-
1308-
func testRetryableSubmissionAndRedeemFees(t *testing.T, arbosVersion *uint64) {
13091300
t.Helper()
13101301

13111302
builder, delayedInbox, lookupL2Tx, ctx, teardown := retryableSetup(t, func(b *NodeBuilder) {
13121303
b.WithDatabase(rawdb.DBPebble)
1313-
if arbosVersion != nil {
1314-
b.WithArbOSVersion(*arbosVersion)
1315-
}
13161304
})
13171305
defer teardown()
13181306
infraFeeAddr, networkFeeAddr := setupFeeAddresses(t, ctx, builder)

0 commit comments

Comments
 (0)