Skip to content

Commit 79d975a

Browse files
committed
gas dimension tracing: tests and solgen added to contracts subrepo
1 parent 482aede commit 79d975a

21 files changed

+355
-321
lines changed

Makefile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,11 @@ test-go-redis: test-go-deps
243243
gotestsum --format short-verbose --no-color=false -- -p 1 -run TestRedis ./system_tests/... ./arbnode/... -- --test_redis=redis://localhost:6379/0
244244
@printf $(done)
245245

246+
.PHONY: test-go-gas-dimensions
247+
test-go-gas-dimensions: test-go-deps
248+
gotestsum --format short-verbose --no-color=false -- -timeout 120m ./system_tests/... -run "TestDim(Log|TxOp)" -tags gasdimensionstest
249+
@printf $(done)
250+
246251
.PHONY: test-gen-proofs
247252
test-gen-proofs: \
248253
$(arbitrator_test_wasms) \
@@ -596,6 +601,7 @@ contracts/test/prover/proofs/%.json: $(arbitrator_cases)/%.wasm $(prover_bin)
596601
yarn --cwd safe-smart-account build
597602
yarn --cwd contracts build
598603
yarn --cwd contracts build:forge:yul
604+
yarn --cwd contracts build:forge:gas-dimensions
599605
yarn --cwd contracts-legacy build
600606
yarn --cwd contracts-legacy build:forge:yul
601607
@touch $@

contracts

Submodule contracts updated 102 files

solgen/gen.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,34 @@ func main() {
157157
})
158158
}
159159

160+
gasDimensionsFilePaths, err := filepath.Glob(filepath.Join(parent, "contracts", "out", "gas-dimensions", "*.sol", "*.json"))
161+
if err != nil {
162+
log.Fatal(err)
163+
}
164+
gasDimensionsModInfo := modules["gas_dimensionsgen"]
165+
if gasDimensionsModInfo == nil {
166+
gasDimensionsModInfo = &moduleInfo{}
167+
modules["gas_dimensionsgen"] = gasDimensionsModInfo
168+
}
169+
for _, path := range gasDimensionsFilePaths {
170+
_, file := filepath.Split(path)
171+
name := file[:len(file)-5]
172+
173+
data, err := os.ReadFile(path)
174+
if err != nil {
175+
log.Fatal("could not read", path, "for contract", name, err)
176+
}
177+
artifact := FoundryArtifact{}
178+
if err := json.Unmarshal(data, &artifact); err != nil {
179+
log.Fatal("failed to parse contract", name, err)
180+
}
181+
gasDimensionsModInfo.addArtifact(HardHatArtifact{
182+
ContractName: name,
183+
Abi: artifact.Abi,
184+
Bytecode: artifact.Bytecode.Object,
185+
})
186+
}
187+
160188
// add upgrade executor module which is not compiled locally, but imported from 'nitro-contracts' depedencies
161189
upgExecutorPath := filepath.Join(parent, "contracts", "node_modules", "@offchainlabs", "upgrade-executor", "build", "contracts", "src", "UpgradeExecutor.sol", "UpgradeExecutor.json")
162190
_, err = os.Stat(upgExecutorPath)

system_tests/gas_dim_log_a_common_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
"github.com/ethereum/go-ethereum/eth/tracers/native"
1313
"github.com/ethereum/go-ethereum/params"
1414

15-
"github.com/offchainlabs/nitro/solgen/go/gasdimensionsgen"
15+
"github.com/offchainlabs/nitro/solgen/go/gas_dimensionsgen"
1616
)
1717

1818
type DimensionLogRes = native.DimensionLogRes
@@ -41,7 +41,7 @@ func TestDimLogComputationOnlyOpcodes(t *testing.T) {
4141
defer cancel()
4242
defer cleanup()
4343

44-
_, contract := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployCounter)
44+
_, contract := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployCounter)
4545
_, receipt := callOnContract(t, builder, auth, contract.NoSpecials)
4646
traceResult := callDebugTraceTransactionWithLogger(t, ctx, builder, receipt.TxHash)
4747

system_tests/gas_dim_log_call_test.go

Lines changed: 65 additions & 65 deletions
Large diffs are not rendered by default.

system_tests/gas_dim_log_create_test.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66

77
"github.com/ethereum/go-ethereum/params"
88

9-
"github.com/offchainlabs/nitro/solgen/go/gasdimensionsgen"
9+
"github.com/offchainlabs/nitro/solgen/go/gas_dimensionsgen"
1010
)
1111

1212
// #########################################################################################################
@@ -52,7 +52,7 @@ func TestDimLogCreateNoTransferMemUnchanged(t *testing.T) {
5252
defer cancel()
5353
defer cleanup()
5454

55-
_, creator := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployCreator)
55+
_, creator := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployCreator)
5656

5757
_, receipt := callOnContract(t, builder, auth, creator.CreateNoTransferMemUnchanged)
5858

@@ -92,7 +92,7 @@ func TestDimLogCreateNoTransferMemExpansion(t *testing.T) {
9292
defer cancel()
9393
defer cleanup()
9494

95-
_, creator := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployCreator)
95+
_, creator := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployCreator)
9696

9797
_, receipt := callOnContract(t, builder, auth, creator.CreateNoTransferMemExpansion)
9898

@@ -135,7 +135,7 @@ func TestDimLogCreatePayingMemUnchanged(t *testing.T) {
135135
defer cancel()
136136
defer cleanup()
137137

138-
creatorAddress, creator := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployCreator)
138+
creatorAddress, creator := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployCreator)
139139
// transfer some eth to the creator contract
140140
_, _ = builder.L2.TransferBalanceTo(t, "Owner", creatorAddress, big.NewInt(1e17), builder.L2Info)
141141

@@ -177,7 +177,7 @@ func TestDimLogCreatePayingMemExpansion(t *testing.T) {
177177
defer cancel()
178178
defer cleanup()
179179

180-
creatorAddress, creator := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployCreator)
180+
creatorAddress, creator := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployCreator)
181181
// transfer some eth to the creator contract
182182
_, _ = builder.L2.TransferBalanceTo(t, "Owner", creatorAddress, big.NewInt(1e17), builder.L2Info)
183183

@@ -248,7 +248,7 @@ func TestDimLogCreate2NoTransferMemUnchanged(t *testing.T) {
248248
defer cancel()
249249
defer cleanup()
250250

251-
_, creator := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployCreatorTwo)
251+
_, creator := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployCreatorTwo)
252252

253253
receipt := callOnContractWithOneArg(t, builder, auth, creator.CreateTwoNoTransferMemUnchanged, [32]byte{0x13, 0x37})
254254

@@ -289,7 +289,7 @@ func TestDimLogCreate2NoTransferMemExpansion(t *testing.T) {
289289
defer cancel()
290290
defer cleanup()
291291

292-
_, creator := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployCreatorTwo)
292+
_, creator := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployCreatorTwo)
293293

294294
receipt := callOnContractWithOneArg(t, builder, auth, creator.CreateTwoNoTransferMemExpansion, [32]byte{0x13, 0x37})
295295

@@ -333,7 +333,7 @@ func TestDimLogCreate2PayingMemUnchanged(t *testing.T) {
333333
defer cancel()
334334
defer cleanup()
335335

336-
_, creator := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployCreatorTwo)
336+
_, creator := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployCreatorTwo)
337337

338338
receipt := callOnContractWithOneArg(t, builder, auth, creator.CreateTwoNoTransferMemUnchanged, [32]byte{0x13, 0x37})
339339

@@ -374,7 +374,7 @@ func TestDimLogCreate2PayingMemExpansion(t *testing.T) {
374374
defer cancel()
375375
defer cleanup()
376376

377-
creatorAddress, creator := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployCreatorTwo)
377+
creatorAddress, creator := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployCreatorTwo)
378378
// transfer some eth to the creator contract
379379
_, _ = builder.L2.TransferBalanceTo(t, "Owner", creatorAddress, big.NewInt(1e17), builder.L2Info)
380380

system_tests/gas_dim_log_extcodecopy_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55

66
"github.com/ethereum/go-ethereum/params"
77

8-
"github.com/offchainlabs/nitro/solgen/go/gasdimensionsgen"
8+
"github.com/offchainlabs/nitro/solgen/go/gas_dimensionsgen"
99
)
1010

1111
// #########################################################################################################
@@ -94,7 +94,7 @@ func TestDimLogExtCodeCopyColdMemUnchanged(t *testing.T) {
9494
defer cancel()
9595
defer cleanup()
9696

97-
_, contract := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployExtCodeCopy)
97+
_, contract := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployExtCodeCopy)
9898
_, receipt := callOnContract(t, builder, auth, contract.ExtCodeCopyColdNoMemExpansion)
9999

100100
traceResult := callDebugTraceTransactionWithLogger(t, ctx, builder, receipt.TxHash)
@@ -132,7 +132,7 @@ func TestDimLogExtCodeCopyColdMemExpansion(t *testing.T) {
132132
defer cancel()
133133
defer cleanup()
134134

135-
_, contract := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployExtCodeCopy)
135+
_, contract := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployExtCodeCopy)
136136
_, receipt := callOnContract(t, builder, auth, contract.ExtCodeCopyColdMemExpansion)
137137

138138
traceResult := callDebugTraceTransactionWithLogger(t, ctx, builder, receipt.TxHash)
@@ -168,7 +168,7 @@ func TestDimLogExtCodeCopyWarmMemUnchanged(t *testing.T) {
168168
defer cancel()
169169
defer cleanup()
170170

171-
_, contract := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployExtCodeCopy)
171+
_, contract := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployExtCodeCopy)
172172
_, receipt := callOnContract(t, builder, auth, contract.ExtCodeCopyWarmNoMemExpansion)
173173

174174
traceResult := callDebugTraceTransactionWithLogger(t, ctx, builder, receipt.TxHash)
@@ -206,7 +206,7 @@ func TestDimLogExtCodeCopyWarmMemExpansion(t *testing.T) {
206206
defer cancel()
207207
defer cleanup()
208208

209-
_, contract := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployExtCodeCopy)
209+
_, contract := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployExtCodeCopy)
210210
_, receipt := callOnContract(t, builder, auth, contract.ExtCodeCopyWarmMemExpansion)
211211

212212
traceResult := callDebugTraceTransactionWithLogger(t, ctx, builder, receipt.TxHash)

system_tests/gas_dim_log_log_test.go

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55

66
"github.com/ethereum/go-ethereum/params"
77

8-
"github.com/offchainlabs/nitro/solgen/go/gasdimensionsgen"
8+
"github.com/offchainlabs/nitro/solgen/go/gas_dimensionsgen"
99
)
1010

1111
const (
@@ -50,7 +50,7 @@ func TestDimLogLog0TopicsOnlyMemUnchanged(t *testing.T) {
5050
defer cancel()
5151
defer cleanup()
5252

53-
_, contract := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployLogEmitter)
53+
_, contract := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployLogEmitter)
5454
_, receipt := callOnContract(t, builder, auth, contract.EmitZeroTopicEmptyData)
5555

5656
traceResult := callDebugTraceTransactionWithLogger(t, ctx, builder, receipt.TxHash)
@@ -83,7 +83,7 @@ func TestDimLogLog0ExtraDataMemUnchanged(t *testing.T) {
8383
defer cancel()
8484
defer cleanup()
8585

86-
_, contract := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployLogEmitter)
86+
_, contract := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployLogEmitter)
8787
_, receipt := callOnContract(t, builder, auth, contract.EmitZeroTopicNonEmptyData)
8888

8989
traceResult := callDebugTraceTransactionWithLogger(t, ctx, builder, receipt.TxHash)
@@ -120,7 +120,7 @@ func TestDimLogLog1TopicsOnlyMemUnchanged(t *testing.T) {
120120
defer cancel()
121121
defer cleanup()
122122

123-
_, contract := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployLogEmitter)
123+
_, contract := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployLogEmitter)
124124
_, receipt := callOnContract(t, builder, auth, contract.EmitOneTopicEmptyData)
125125

126126
traceResult := callDebugTraceTransactionWithLogger(t, ctx, builder, receipt.TxHash)
@@ -156,7 +156,7 @@ func TestDimLogLog1ExtraDataMemUnchanged(t *testing.T) {
156156
defer cancel()
157157
defer cleanup()
158158

159-
_, contract := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployLogEmitter)
159+
_, contract := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployLogEmitter)
160160
_, receipt := callOnContract(t, builder, auth, contract.EmitOneTopicNonEmptyData)
161161

162162
traceResult := callDebugTraceTransactionWithLogger(t, ctx, builder, receipt.TxHash)
@@ -192,7 +192,7 @@ func TestDimLogLog2TopicsOnlyMemUnchanged(t *testing.T) {
192192
defer cancel()
193193
defer cleanup()
194194

195-
_, contract := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployLogEmitter)
195+
_, contract := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployLogEmitter)
196196
_, receipt := callOnContract(t, builder, auth, contract.EmitTwoTopics)
197197

198198
traceResult := callDebugTraceTransactionWithLogger(t, ctx, builder, receipt.TxHash)
@@ -230,7 +230,7 @@ func TestDimLogLog2ExtraDataMemUnchanged(t *testing.T) {
230230
defer cancel()
231231
defer cleanup()
232232

233-
_, contract := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployLogEmitter)
233+
_, contract := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployLogEmitter)
234234
_, receipt := callOnContract(t, builder, auth, contract.EmitTwoTopicsExtraData)
235235

236236
traceResult := callDebugTraceTransactionWithLogger(t, ctx, builder, receipt.TxHash)
@@ -266,7 +266,7 @@ func TestDimLogLog3TopicsOnlyMemUnchanged(t *testing.T) {
266266
defer cancel()
267267
defer cleanup()
268268

269-
_, contract := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployLogEmitter)
269+
_, contract := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployLogEmitter)
270270
_, receipt := callOnContract(t, builder, auth, contract.EmitThreeTopics)
271271

272272
traceResult := callDebugTraceTransactionWithLogger(t, ctx, builder, receipt.TxHash)
@@ -304,7 +304,7 @@ func TestDimLogLog3ExtraDataMemUnchanged(t *testing.T) {
304304
defer cancel()
305305
defer cleanup()
306306

307-
_, contract := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployLogEmitter)
307+
_, contract := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployLogEmitter)
308308
_, receipt := callOnContract(t, builder, auth, contract.EmitThreeTopicsExtraData)
309309

310310
traceResult := callDebugTraceTransactionWithLogger(t, ctx, builder, receipt.TxHash)
@@ -340,7 +340,7 @@ func TestDimLogLog4TopicsOnlyMemUnchanged(t *testing.T) {
340340
defer cancel()
341341
defer cleanup()
342342

343-
_, contract := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployLogEmitter)
343+
_, contract := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployLogEmitter)
344344
_, receipt := callOnContract(t, builder, auth, contract.EmitFourTopics)
345345

346346
traceResult := callDebugTraceTransactionWithLogger(t, ctx, builder, receipt.TxHash)
@@ -378,7 +378,7 @@ func TestDimLogLog4ExtraDataMemUnchanged(t *testing.T) {
378378
defer cancel()
379379
defer cleanup()
380380

381-
_, contract := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployLogEmitter)
381+
_, contract := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployLogEmitter)
382382
_, receipt := callOnContract(t, builder, auth, contract.EmitFourTopicsExtraData)
383383

384384
traceResult := callDebugTraceTransactionWithLogger(t, ctx, builder, receipt.TxHash)
@@ -435,7 +435,7 @@ func TestDimLogLog0ExtraDataMemExpansion(t *testing.T) {
435435
defer cancel()
436436
defer cleanup()
437437

438-
_, contract := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployLogEmitter)
438+
_, contract := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployLogEmitter)
439439
_, receipt := callOnContract(t, builder, auth, contract.EmitZeroTopicNonEmptyDataAndMemExpansion)
440440

441441
traceResult := callDebugTraceTransactionWithLogger(t, ctx, builder, receipt.TxHash)
@@ -475,7 +475,7 @@ func TestDimLogLog1ExtraDataMemExpansion(t *testing.T) {
475475
defer cancel()
476476
defer cleanup()
477477

478-
_, contract := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployLogEmitter)
478+
_, contract := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployLogEmitter)
479479
_, receipt := callOnContract(t, builder, auth, contract.EmitOneTopicNonEmptyDataAndMemExpansion)
480480

481481
traceResult := callDebugTraceTransactionWithLogger(t, ctx, builder, receipt.TxHash)
@@ -516,7 +516,7 @@ func TestDimLogLog2ExtraDataMemExpansion(t *testing.T) {
516516
defer cancel()
517517
defer cleanup()
518518

519-
_, contract := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployLogEmitter)
519+
_, contract := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployLogEmitter)
520520
_, receipt := callOnContract(t, builder, auth, contract.EmitTwoTopicsExtraDataAndMemExpansion)
521521

522522
traceResult := callDebugTraceTransactionWithLogger(t, ctx, builder, receipt.TxHash)
@@ -557,7 +557,7 @@ func TestDimLogLog3ExtraDataMemExpansion(t *testing.T) {
557557
defer cancel()
558558
defer cleanup()
559559

560-
_, contract := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployLogEmitter)
560+
_, contract := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployLogEmitter)
561561
_, receipt := callOnContract(t, builder, auth, contract.EmitThreeTopicsExtraDataAndMemExpansion)
562562

563563
traceResult := callDebugTraceTransactionWithLogger(t, ctx, builder, receipt.TxHash)
@@ -598,7 +598,7 @@ func TestDimLogLog4ExtraDataMemExpansion(t *testing.T) {
598598
defer cancel()
599599
defer cleanup()
600600

601-
_, contract := deployGasDimensionTestContract(t, builder, auth, gasdimensionsgen.DeployLogEmitter)
601+
_, contract := deployGasDimensionTestContract(t, builder, auth, gas_dimensionsgen.DeployLogEmitter)
602602
_, receipt := callOnContract(t, builder, auth, contract.EmitFourTopicsExtraDataAndMemExpansion)
603603

604604
traceResult := callDebugTraceTransactionWithLogger(t, ctx, builder, receipt.TxHash)

0 commit comments

Comments
 (0)