Skip to content

Commit 08bf9b1

Browse files
Merge pull request #304 from OffchainLabs/merge-v1.13.6
Merge v1.13.6
2 parents 19f8227 + 5b7a402 commit 08bf9b1

File tree

363 files changed

+6610
-30120
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

363 files changed

+6610
-30120
lines changed

.github/workflows/go.yml

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: i386 linux tests
2+
3+
on:
4+
push:
5+
branches: [ master ]
6+
pull_request:
7+
branches: [ master ]
8+
workflow_dispatch:
9+
10+
jobs:
11+
build:
12+
runs-on: self-hosted
13+
steps:
14+
- uses: actions/checkout@v2
15+
- name: Set up Go
16+
uses: actions/setup-go@v2
17+
with:
18+
go-version: 1.21.4
19+
- name: Run tests
20+
run: go test ./...
21+
env:
22+
GOOS: linux
23+
GOARCH: 386

Dockerfile.alltools

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ ARG VERSION=""
44
ARG BUILDNUM=""
55

66
# Build Geth in a stock Go builder container
7-
FROM golang:1.20-alpine as builder
7+
FROM golang:1.21-alpine as builder
88

99
RUN apk add --no-cache gcc musl-dev linux-headers git
1010

accounts/abi/abi.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ var revertSelector = crypto.Keccak256([]byte("Error(string)"))[:4]
251251
var panicSelector = crypto.Keccak256([]byte("Panic(uint256)"))[:4]
252252

253253
// panicReasons map is for readable panic codes
254-
// see this linkage for the deails
254+
// see this linkage for the details
255255
// https://docs.soliditylang.org/en/v0.8.21/control-structures.html#panic-via-assert-and-error-via-require
256256
// the reason string list is copied from ether.js
257257
// https://github.com/ethers-io/ethers.js/blob/fa3a883ff7c88611ce766f58bdd4b8ac90814470/src.ts/abi/interface.ts#L207-L218

accounts/abi/abi_test.go

+24
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ var methods = map[string]Method{
120120
}
121121

122122
func TestReader(t *testing.T) {
123+
t.Parallel()
123124
abi := ABI{
124125
Methods: methods,
125126
}
@@ -151,6 +152,7 @@ func TestReader(t *testing.T) {
151152
}
152153

153154
func TestInvalidABI(t *testing.T) {
155+
t.Parallel()
154156
json := `[{ "type" : "function", "name" : "", "constant" : fals }]`
155157
_, err := JSON(strings.NewReader(json))
156158
if err == nil {
@@ -170,6 +172,7 @@ func TestInvalidABI(t *testing.T) {
170172
// constructor(uint256 a, uint256 b) public{}
171173
// }
172174
func TestConstructor(t *testing.T) {
175+
t.Parallel()
173176
json := `[{ "inputs": [{"internalType": "uint256","name": "a","type": "uint256" },{ "internalType": "uint256","name": "b","type": "uint256"}],"stateMutability": "nonpayable","type": "constructor"}]`
174177
method := NewMethod("", "", Constructor, "nonpayable", false, false, []Argument{{"a", Uint256, false}, {"b", Uint256, false}}, nil)
175178
// Test from JSON
@@ -199,6 +202,7 @@ func TestConstructor(t *testing.T) {
199202
}
200203

201204
func TestTestNumbers(t *testing.T) {
205+
t.Parallel()
202206
abi, err := JSON(strings.NewReader(jsondata))
203207
if err != nil {
204208
t.Fatal(err)
@@ -236,6 +240,7 @@ func TestTestNumbers(t *testing.T) {
236240
}
237241

238242
func TestMethodSignature(t *testing.T) {
243+
t.Parallel()
239244
m := NewMethod("foo", "foo", Function, "", false, false, []Argument{{"bar", String, false}, {"baz", String, false}}, nil)
240245
exp := "foo(string,string)"
241246
if m.Sig != exp {
@@ -274,6 +279,7 @@ func TestMethodSignature(t *testing.T) {
274279
}
275280

276281
func TestOverloadedMethodSignature(t *testing.T) {
282+
t.Parallel()
277283
json := `[{"constant":true,"inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"}],"name":"foo","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"i","type":"uint256"}],"name":"foo","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"i","type":"uint256"}],"name":"bar","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"i","type":"uint256"},{"indexed":false,"name":"j","type":"uint256"}],"name":"bar","type":"event"}]`
278284
abi, err := JSON(strings.NewReader(json))
279285
if err != nil {
@@ -297,6 +303,7 @@ func TestOverloadedMethodSignature(t *testing.T) {
297303
}
298304

299305
func TestCustomErrors(t *testing.T) {
306+
t.Parallel()
300307
json := `[{ "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ],"name": "MyError", "type": "error"} ]`
301308
abi, err := JSON(strings.NewReader(json))
302309
if err != nil {
@@ -311,6 +318,7 @@ func TestCustomErrors(t *testing.T) {
311318
}
312319

313320
func TestMultiPack(t *testing.T) {
321+
t.Parallel()
314322
abi, err := JSON(strings.NewReader(jsondata))
315323
if err != nil {
316324
t.Fatal(err)
@@ -348,6 +356,7 @@ func ExampleJSON() {
348356
}
349357

350358
func TestInputVariableInputLength(t *testing.T) {
359+
t.Parallel()
351360
const definition = `[
352361
{ "type" : "function", "name" : "strOne", "constant" : true, "inputs" : [ { "name" : "str", "type" : "string" } ] },
353362
{ "type" : "function", "name" : "bytesOne", "constant" : true, "inputs" : [ { "name" : "str", "type" : "bytes" } ] },
@@ -476,6 +485,7 @@ func TestInputVariableInputLength(t *testing.T) {
476485
}
477486

478487
func TestInputFixedArrayAndVariableInputLength(t *testing.T) {
488+
t.Parallel()
479489
abi, err := JSON(strings.NewReader(jsondata))
480490
if err != nil {
481491
t.Error(err)
@@ -650,6 +660,7 @@ func TestInputFixedArrayAndVariableInputLength(t *testing.T) {
650660
}
651661

652662
func TestDefaultFunctionParsing(t *testing.T) {
663+
t.Parallel()
653664
const definition = `[{ "name" : "balance", "type" : "function" }]`
654665

655666
abi, err := JSON(strings.NewReader(definition))
@@ -663,6 +674,7 @@ func TestDefaultFunctionParsing(t *testing.T) {
663674
}
664675

665676
func TestBareEvents(t *testing.T) {
677+
t.Parallel()
666678
const definition = `[
667679
{ "type" : "event", "name" : "balance" },
668680
{ "type" : "event", "name" : "anon", "anonymous" : true},
@@ -739,6 +751,7 @@ func TestBareEvents(t *testing.T) {
739751
//
740752
// receipt{status=1 cgas=23949 bloom=00000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000040200000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 logs=[log: b6818c8064f645cd82d99b59a1a267d6d61117ef [75fd880d39c1daf53b6547ab6cb59451fc6452d27caa90e5b6649dd8293b9eed] 000000000000000000000000376c47978271565f56deb45495afa69e59c16ab200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000158 9ae378b6d4409eada347a5dc0c180f186cb62dc68fcc0f043425eb917335aa28 0 95d429d309bb9d753954195fe2d69bd140b4ae731b9b5b605c34323de162cf00 0]}
741753
func TestUnpackEvent(t *testing.T) {
754+
t.Parallel()
742755
const abiJSON = `[{"constant":false,"inputs":[{"name":"memo","type":"bytes"}],"name":"receive","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"memo","type":"bytes"}],"name":"received","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"}],"name":"receivedAddr","type":"event"}]`
743756
abi, err := JSON(strings.NewReader(abiJSON))
744757
if err != nil {
@@ -777,6 +790,7 @@ func TestUnpackEvent(t *testing.T) {
777790
}
778791

779792
func TestUnpackEventIntoMap(t *testing.T) {
793+
t.Parallel()
780794
const abiJSON = `[{"constant":false,"inputs":[{"name":"memo","type":"bytes"}],"name":"receive","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"memo","type":"bytes"}],"name":"received","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"}],"name":"receivedAddr","type":"event"}]`
781795
abi, err := JSON(strings.NewReader(abiJSON))
782796
if err != nil {
@@ -827,6 +841,7 @@ func TestUnpackEventIntoMap(t *testing.T) {
827841
}
828842

829843
func TestUnpackMethodIntoMap(t *testing.T) {
844+
t.Parallel()
830845
const abiJSON = `[{"constant":false,"inputs":[{"name":"memo","type":"bytes"}],"name":"receive","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"send","outputs":[{"name":"amount","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"get","outputs":[{"name":"hash","type":"bytes"}],"payable":true,"stateMutability":"payable","type":"function"}]`
831846
abi, err := JSON(strings.NewReader(abiJSON))
832847
if err != nil {
@@ -877,6 +892,7 @@ func TestUnpackMethodIntoMap(t *testing.T) {
877892
}
878893

879894
func TestUnpackIntoMapNamingConflict(t *testing.T) {
895+
t.Parallel()
880896
// Two methods have the same name
881897
var abiJSON = `[{"constant":false,"inputs":[{"name":"memo","type":"bytes"}],"name":"get","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"send","outputs":[{"name":"amount","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"get","outputs":[{"name":"hash","type":"bytes"}],"payable":true,"stateMutability":"payable","type":"function"}]`
882898
abi, err := JSON(strings.NewReader(abiJSON))
@@ -960,6 +976,7 @@ func TestUnpackIntoMapNamingConflict(t *testing.T) {
960976
}
961977

962978
func TestABI_MethodById(t *testing.T) {
979+
t.Parallel()
963980
abi, err := JSON(strings.NewReader(jsondata))
964981
if err != nil {
965982
t.Fatal(err)
@@ -992,6 +1009,7 @@ func TestABI_MethodById(t *testing.T) {
9921009
}
9931010

9941011
func TestABI_EventById(t *testing.T) {
1012+
t.Parallel()
9951013
tests := []struct {
9961014
name string
9971015
json string
@@ -1058,6 +1076,7 @@ func TestABI_EventById(t *testing.T) {
10581076
}
10591077

10601078
func TestABI_ErrorByID(t *testing.T) {
1079+
t.Parallel()
10611080
abi, err := JSON(strings.NewReader(`[
10621081
{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"MyError1","type":"error"},
10631082
{"inputs":[{"components":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"string","name":"b","type":"string"},{"internalType":"address","name":"c","type":"address"}],"internalType":"struct MyError.MyStruct","name":"x","type":"tuple"},{"internalType":"address","name":"y","type":"address"},{"components":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"string","name":"b","type":"string"},{"internalType":"address","name":"c","type":"address"}],"internalType":"struct MyError.MyStruct","name":"z","type":"tuple"}],"name":"MyError2","type":"error"},
@@ -1087,6 +1106,7 @@ func TestABI_ErrorByID(t *testing.T) {
10871106
// TestDoubleDuplicateMethodNames checks that if transfer0 already exists, there won't be a name
10881107
// conflict and that the second transfer method will be renamed transfer1.
10891108
func TestDoubleDuplicateMethodNames(t *testing.T) {
1109+
t.Parallel()
10901110
abiJSON := `[{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"ok","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"}],"name":"transfer0","outputs":[{"name":"ok","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"},{"name":"customFallback","type":"string"}],"name":"transfer","outputs":[{"name":"ok","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]`
10911111
contractAbi, err := JSON(strings.NewReader(abiJSON))
10921112
if err != nil {
@@ -1116,6 +1136,7 @@ func TestDoubleDuplicateMethodNames(t *testing.T) {
11161136
// event send();
11171137
// }
11181138
func TestDoubleDuplicateEventNames(t *testing.T) {
1139+
t.Parallel()
11191140
abiJSON := `[{"anonymous": false,"inputs": [{"indexed": false,"internalType": "uint256","name": "a","type": "uint256"}],"name": "send","type": "event"},{"anonymous": false,"inputs": [],"name": "send0","type": "event"},{ "anonymous": false, "inputs": [],"name": "send","type": "event"}]`
11201141
contractAbi, err := JSON(strings.NewReader(abiJSON))
11211142
if err != nil {
@@ -1143,6 +1164,7 @@ func TestDoubleDuplicateEventNames(t *testing.T) {
11431164
// event send(uint256, uint256);
11441165
// }
11451166
func TestUnnamedEventParam(t *testing.T) {
1167+
t.Parallel()
11461168
abiJSON := `[{ "anonymous": false, "inputs": [{ "indexed": false,"internalType": "uint256", "name": "","type": "uint256"},{"indexed": false,"internalType": "uint256","name": "","type": "uint256"}],"name": "send","type": "event"}]`
11471169
contractAbi, err := JSON(strings.NewReader(abiJSON))
11481170
if err != nil {
@@ -1176,7 +1198,9 @@ func TestUnpackRevert(t *testing.T) {
11761198
{"4e487b7100000000000000000000000000000000000000000000000000000000000000ff", "unknown panic code: 0xff", nil},
11771199
}
11781200
for index, c := range cases {
1201+
index, c := index, c
11791202
t.Run(fmt.Sprintf("case %d", index), func(t *testing.T) {
1203+
t.Parallel()
11801204
got, err := UnpackRevert(common.Hex2Bytes(c.input))
11811205
if c.expectErr != nil {
11821206
if err == nil {

0 commit comments

Comments
 (0)