├── .gitignore ├── .gitattributes ├── doc.go ├── .github ├── dependabot.yml └── workflows │ └── go.yml ├── testdata ├── test1 │ ├── lib.sol │ └── test1.sol └── test2 │ └── test2.sol ├── internal ├── version │ ├── version.go │ └── version_test.go ├── console │ ├── args.go.tmpl │ ├── console.sol.tmpl │ ├── console.go │ ├── gen.go │ ├── args.go │ └── console.sol └── mod │ ├── root_test.go │ └── root.go ├── options_test.go ├── download_test.go ├── params.go ├── examples ├── console │ ├── console.t.sol │ └── console_test.go ├── go.mod └── go.sum ├── go.mod ├── LICENSE ├── README.md ├── console.go ├── params_darwin_arm64.go ├── compiler_test.go ├── download.go ├── params_gen.go ├── options.go ├── types.go ├── compiler.go ├── go.sum ├── params_linux_amd64.go └── params_darwin_amd64.go /.gitignore: -------------------------------------------------------------------------------- 1 | .solc/ 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | testdata/ linguist-generated=true 2 | *.sol linguist-generated=true 3 | -------------------------------------------------------------------------------- /doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | Package solc provides bindings for the Solidity compiler. 3 | */ 4 | package solc 5 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "gomod" 4 | directory: "/" 5 | schedule: 6 | interval: "daily" 7 | -------------------------------------------------------------------------------- /testdata/test1/lib.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: UNLICENSED 2 | pragma solidity ^0.8.0; 3 | 4 | library Lib { 5 | function f() internal pure returns (uint) { 6 | return 42; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /internal/version/version.go: -------------------------------------------------------------------------------- 1 | package version 2 | 3 | import "go/version" 4 | 5 | func IsValid(x string) bool { 6 | return version.IsValid("go" + x) 7 | } 8 | 9 | func Compare(x, y string) int { 10 | return version.Compare("go"+x, "go"+y) 11 | } 12 | -------------------------------------------------------------------------------- /testdata/test1/test1.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: UNLICENSED 2 | pragma solidity ^0.8.0; 3 | 4 | import "./lib.sol"; 5 | 6 | contract Test1 { 7 | function test() external pure returns (uint) { 8 | return Lib.f(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /testdata/test2/test2.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: UNLICENSED 2 | pragma solidity ^0.8.0; 3 | 4 | 5 | import "../lib.sol"; 6 | 7 | contract Test2 { 8 | function test() external pure returns (uint) { 9 | return 42; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /internal/console/args.go.tmpl: -------------------------------------------------------------------------------- 1 | package console 2 | 3 | import "github.com/ethereum/go-ethereum/accounts/abi" 4 | 5 | var Args = map[[4]byte]abi.Arguments{ 6 | {{- range .Args }} 7 | {{ .SelString }}: { 8 | {{- .ArgTypes -}} 9 | }, 10 | {{- end }} 11 | } 12 | -------------------------------------------------------------------------------- /internal/mod/root_test.go: -------------------------------------------------------------------------------- 1 | package mod_test 2 | 3 | import ( 4 | "strings" 5 | "testing" 6 | 7 | "github.com/lmittmann/go-solc/internal/mod" 8 | ) 9 | 10 | func TestModRoot(t *testing.T) { 11 | if !strings.HasSuffix(mod.Root, "solc") { 12 | t.Fatalf("Unexpected module root: %q", mod.Root) 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /options_test.go: -------------------------------------------------------------------------------- 1 | package solc 2 | 3 | import "testing" 4 | 5 | func TestDefaultEVMVersions(t *testing.T) { 6 | if len(solcVersions) == 0 { 7 | t.Fatalf(`empty "solcVersions". unsupported build target?`) 8 | } 9 | 10 | for version := range solcVersions { 11 | if _, ok := defaultEVMVersions[version]; !ok { 12 | t.Errorf("Missing default EVM version for %q", version) 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /download_test.go: -------------------------------------------------------------------------------- 1 | package solc 2 | 3 | import "testing" 4 | 5 | func TestDownloadSolc(t *testing.T) { 6 | errCh := make(chan error, 2) 7 | go func() { 8 | _, err := checkSolc("0.8.21") 9 | errCh <- err 10 | }() 11 | 12 | _, err := checkSolc("0.8.21") 13 | errCh <- err 14 | 15 | for i := 0; i < cap(errCh); i++ { 16 | if err := <-errCh; err != nil { 17 | t.Fatal(err) 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /internal/mod/root.go: -------------------------------------------------------------------------------- 1 | package mod 2 | 3 | import ( 4 | "os/exec" 5 | "strings" 6 | ) 7 | 8 | // Root contains the absolute path of the module root. Its value is empty if 9 | // used outside of a module. 10 | var Root string 11 | 12 | func init() { 13 | stdout, _ := exec.Command("go", "env", "GOMOD").Output() 14 | 15 | var ok bool 16 | Root, ok = strings.CutSuffix(strings.TrimSpace(string(stdout)), "/go.mod") 17 | if !ok { 18 | Root = "" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /params.go: -------------------------------------------------------------------------------- 1 | //go:generate go run params_gen.go 2 | package solc 3 | 4 | import ( 5 | "github.com/lmittmann/go-solc/internal/version" 6 | ) 7 | 8 | var ( 9 | solcBaseURL string 10 | solcVersions map[Version]solcVersion 11 | ) 12 | 13 | // Version represents a solc version. 14 | type Version string 15 | 16 | func (v Version) String() string { return string(v) } 17 | 18 | // Compare returns -1, 0, or +1 depending on whether v < other, v == other, or 19 | // v > other 20 | func (v Version) Cmp(other Version) int { 21 | return version.Compare(string(v), string(other)) 22 | } 23 | 24 | // Versions is a list of all available solc versions. 25 | var Versions []Version 26 | -------------------------------------------------------------------------------- /examples/console/console.t.sol: -------------------------------------------------------------------------------- 1 | // Code generated by go generate; DO NOT EDIT. 2 | // SPDX-License-Identifier: MIT 3 | pragma solidity >=0.5.0 <0.9.0; 4 | 5 | import "console.sol"; 6 | 7 | contract ConsoleTest { 8 | 9 | function testHello() external pure { 10 | console.log("Hello, World!"); 11 | } 12 | 13 | function testInt() external pure { 14 | console.logInt(-42); 15 | } 16 | 17 | function testBytes() external pure { 18 | console.logBytes(abi.encodePacked("test")); 19 | } 20 | 21 | function testBytes1() external pure { 22 | console.logBytes1(0xff); 23 | } 24 | 25 | function testAddress() external pure { 26 | console.logAddress(address(0xc0fe)); 27 | } 28 | 29 | function testBool() external pure { 30 | console.logBool(true); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/lmittmann/go-solc 2 | 3 | go 1.23.0 4 | 5 | require ( 6 | github.com/ethereum/go-ethereum v1.15.11 7 | github.com/google/go-cmp v0.7.0 8 | golang.org/x/sync v0.14.0 9 | ) 10 | 11 | require ( 12 | github.com/bits-and-blooms/bitset v1.20.0 // indirect 13 | github.com/consensys/bavard v0.1.27 // indirect 14 | github.com/consensys/gnark-crypto v0.16.0 // indirect 15 | github.com/crate-crypto/go-eth-kzg v1.3.0 // indirect 16 | github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a // indirect 17 | github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect 18 | github.com/ethereum/c-kzg-4844/v2 v2.1.0 // indirect 19 | github.com/ethereum/go-verkle v0.2.2 // indirect 20 | github.com/holiman/uint256 v1.3.2 // indirect 21 | github.com/mmcloughlin/addchain v0.4.0 // indirect 22 | github.com/supranational/blst v0.3.14 // indirect 23 | golang.org/x/crypto v0.35.0 // indirect 24 | golang.org/x/sys v0.30.0 // indirect 25 | rsc.io/tmplfunc v0.0.3 // indirect 26 | ) 27 | -------------------------------------------------------------------------------- /.github/workflows/go.yml: -------------------------------------------------------------------------------- 1 | name: Go 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | 9 | jobs: 10 | lint: 11 | name: Lint 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v4 15 | - uses: actions/setup-go@v5 16 | with: 17 | go-version: "1.23" 18 | - name: fmt 19 | run: diff -u <(echo -n) <(gofmt -s -d .) 20 | - name: vet 21 | run: go vet ./... 22 | - name: install staticcheck 23 | run: go install honnef.co/go/tools/cmd/staticcheck@latest 24 | - name: staticcheck 25 | run: staticcheck ./... 26 | - name: tidy 27 | run: | 28 | go mod tidy -diff 29 | cd examples/ && go mod tidy -diff 30 | 31 | test: 32 | name: Test 33 | runs-on: ubuntu-latest 34 | steps: 35 | - uses: actions/checkout@v4 36 | - uses: actions/setup-go@v5 37 | with: 38 | go-version: "1.23" 39 | - name: test 40 | run: go test ./... 41 | -------------------------------------------------------------------------------- /internal/version/version_test.go: -------------------------------------------------------------------------------- 1 | package version_test 2 | 3 | import ( 4 | "strconv" 5 | "testing" 6 | 7 | "github.com/lmittmann/go-solc/internal/version" 8 | ) 9 | 10 | func TestIsValid(t *testing.T) { 11 | tests := []struct { 12 | VersionStr string 13 | Want bool 14 | }{ 15 | {"0.1.2", true}, 16 | {"go0.1.2", false}, 17 | } 18 | 19 | for i, test := range tests { 20 | t.Run(strconv.Itoa(i), func(t *testing.T) { 21 | got := version.IsValid(test.VersionStr) 22 | if test.Want != got { 23 | t.Fatalf("want %t, got %t", test.Want, got) 24 | } 25 | }) 26 | } 27 | } 28 | 29 | func TestCompare(t *testing.T) { 30 | tests := []struct { 31 | X, Y string 32 | Want int 33 | }{ 34 | {"0.5", "0.5", 0}, 35 | {"0.1", "0.5", -1}, 36 | {"0.5", "0.1", 1}, 37 | } 38 | 39 | for i, test := range tests { 40 | t.Run(strconv.Itoa(i), func(t *testing.T) { 41 | got := version.Compare(test.X, test.Y) 42 | if test.Want != got { 43 | t.Fatalf("want %d, got %d", test.Want, got) 44 | } 45 | }) 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 lmittmann 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /internal/console/console.sol.tmpl: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.5.0 <0.9.0; 3 | 4 | library console { 5 | function _castLogViewToPure(function(bytes memory) internal view fnIn) internal pure returns (function(bytes memory) internal pure fnOut) { 6 | assembly { 7 | fnOut := fnIn 8 | } 9 | } 10 | 11 | function _logView(bytes memory data) internal view { 12 | assembly { 13 | pop(staticcall(gas(), {{ .Addr }}, add(data, 0x20), mload(data), 0, 0)) 14 | } 15 | } 16 | 17 | function _log(bytes memory data) internal pure { 18 | _castLogViewToPure(_logView)(data); 19 | } 20 | 21 | {{- range .Args }} 22 | {{- if not .IsLogType }}{{ continue }}{{ end }} 23 | 24 | function {{ .LogTypeSignature }} internal pure { 25 | _log(abi.encodeWithSignature({{ printf "%q" .Sig -}}, {{ .Params }})); 26 | } 27 | {{- end }} 28 | 29 | {{- range .Args }} 30 | {{- if not .IsLog }}{{ continue }}{{ end }} 31 | 32 | function {{ .LogSignature }} internal pure { 33 | _log(abi.encodeWithSignature({{ printf "%q" .Sig -}} 34 | {{- if .Params -}} 35 | , {{ .Params }} 36 | {{- end -}} 37 | )); 38 | } 39 | {{- end }} 40 | } 41 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # `go-solc`: Go Bindings for the Solidity Compiler 2 | 3 | [![Go Reference](https://pkg.go.dev/badge/github.com/lmittmann/go-solc.svg)](https://pkg.go.dev/github.com/lmittmann/go-solc) 4 | [![Go Report Card](https://goreportcard.com/badge/github.com/lmittmann/go-solc)](https://goreportcard.com/report/github.com/lmittmann/go-solc) 5 | 6 | `go-solc` provides an easy way to compile Solidity contracts from Go. 7 | 8 | ``` 9 | go get github.com/lmittmann/go-solc 10 | ``` 11 | 12 | 13 | ## Getting Started 14 | 15 | `go-solc` automatically downloads the specified version of the Solidity compiler from https://binaries.soliditylang.org and caches it at `.solc/bin/`. 16 | 17 | Example test: 18 | ```go 19 | // contract_test.go 20 | func TestContract(t *testing.T) { 21 | c := solc.New(solc.VersionLatest) 22 | contract, err := c.Compile("src", "Test", 23 | solc.WithOptimizer(&solc.Optimizer{Enabled: true, Runs: 999999}), 24 | ) 25 | // ... 26 | } 27 | ``` 28 | 29 | Example directory structure: 30 | ```bash 31 | workspace/ 32 | ├── .solc/ 33 | │ └── bin/ # cached solc binaries 34 | │ └── solc_v0.8.30 35 | ├── src/ 36 | │ └── test.sol 37 | ├── contract_test.go 38 | ├── go.mod 39 | └── go.sum 40 | ``` 41 | 42 | > [!WARNING] 43 | > 44 | > This package is pre-1.0. There might be breaking changes between minor versions. 45 | -------------------------------------------------------------------------------- /console.go: -------------------------------------------------------------------------------- 1 | package solc 2 | 3 | import ( 4 | "fmt" 5 | "math/big" 6 | "strings" 7 | "testing" 8 | 9 | "github.com/ethereum/go-ethereum/accounts/abi" 10 | "github.com/ethereum/go-ethereum/common" 11 | "github.com/ethereum/go-ethereum/core/tracing" 12 | "github.com/lmittmann/go-solc/internal/console" 13 | ) 14 | 15 | // NewConsole returns a [vm.tracing.Hooks] that logs calls of console.sol to the 16 | // given testing.TB. 17 | // 18 | // To use console logging in your Solidity contract, import "console.sol". 19 | func NewConsole(tb testing.TB) *tracing.Hooks { 20 | tracer := &consoleTracer{tb: tb} 21 | return &tracing.Hooks{ 22 | OnEnter: tracer.enterHook, 23 | } 24 | } 25 | 26 | type consoleTracer struct { 27 | tb testing.TB 28 | } 29 | 30 | func (ct *consoleTracer) enterHook(depth int, typ byte, from common.Address, to common.Address, input []byte, gas uint64, value *big.Int) { 31 | if to != console.Addr || len(input) < 4 { 32 | return 33 | } 34 | 35 | sel := ([4]byte)(input[:4]) 36 | args, ok := console.Args[sel] 37 | if ok { 38 | ct.log(args, input[4:]) 39 | } 40 | } 41 | 42 | func (ct *consoleTracer) log(args abi.Arguments, data []byte) { 43 | params, err := args.Unpack(data) 44 | if err != nil { 45 | ct.tb.Fatalf("malformed log: %v", err) 46 | return 47 | } 48 | 49 | strVals := make([]string, len(params)) 50 | for i, p := range params { 51 | switch p := p.(type) { 52 | case []byte, 53 | [1]byte, [2]byte, [3]byte, [4]byte, [5]byte, [6]byte, [7]byte, [8]byte, 54 | [9]byte, [10]byte, [11]byte, [12]byte, [13]byte, [14]byte, [15]byte, [16]byte, 55 | [17]byte, [18]byte, [19]byte, [20]byte, [21]byte, [22]byte, [23]byte, [24]byte, 56 | [25]byte, [26]byte, [27]byte, [28]byte, [29]byte, [30]byte, [31]byte, [32]byte: 57 | strVals[i] = fmt.Sprintf("0x%x", p) 58 | default: 59 | strVals[i] = fmt.Sprint(p) 60 | } 61 | } 62 | ct.tb.Log(strings.Join(strVals, " ")) 63 | } 64 | -------------------------------------------------------------------------------- /examples/go.mod: -------------------------------------------------------------------------------- 1 | module examples 2 | 3 | go 1.23.0 4 | 5 | require ( 6 | github.com/lmittmann/go-solc v0.0.0 7 | github.com/lmittmann/w3 v0.19.5 8 | ) 9 | 10 | replace github.com/lmittmann/go-solc => ../ 11 | 12 | require ( 13 | github.com/Microsoft/go-winio v0.6.2 // indirect 14 | github.com/StackExchange/wmi v1.2.1 // indirect 15 | github.com/VictoriaMetrics/fastcache v1.12.2 // indirect 16 | github.com/bits-and-blooms/bitset v1.20.0 // indirect 17 | github.com/cespare/xxhash/v2 v2.3.0 // indirect 18 | github.com/consensys/bavard v0.1.27 // indirect 19 | github.com/consensys/gnark-crypto v0.16.0 // indirect 20 | github.com/crate-crypto/go-eth-kzg v1.3.0 // indirect 21 | github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a // indirect 22 | github.com/deckarep/golang-set/v2 v2.6.0 // indirect 23 | github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect 24 | github.com/ethereum/c-kzg-4844/v2 v2.1.0 // indirect 25 | github.com/ethereum/go-ethereum v1.15.11 // indirect 26 | github.com/ethereum/go-verkle v0.2.2 // indirect 27 | github.com/go-ole/go-ole v1.3.0 // indirect 28 | github.com/gofrs/flock v0.8.1 // indirect 29 | github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect 30 | github.com/gorilla/websocket v1.5.0 // indirect 31 | github.com/holiman/bloomfilter/v2 v2.0.3 // indirect 32 | github.com/holiman/uint256 v1.3.2 // indirect 33 | github.com/mattn/go-runewidth v0.0.16 // indirect 34 | github.com/mmcloughlin/addchain v0.4.0 // indirect 35 | github.com/olekukonko/tablewriter v0.0.5 // indirect 36 | github.com/rivo/uniseg v0.4.7 // indirect 37 | github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect 38 | github.com/supranational/blst v0.3.14 // indirect 39 | github.com/tklauser/go-sysconf v0.3.12 // indirect 40 | github.com/tklauser/numcpus v0.6.1 // indirect 41 | golang.org/x/crypto v0.35.0 // indirect 42 | golang.org/x/sync v0.14.0 // indirect 43 | golang.org/x/sys v0.30.0 // indirect 44 | golang.org/x/time v0.11.0 // indirect 45 | rsc.io/tmplfunc v0.0.3 // indirect 46 | ) 47 | -------------------------------------------------------------------------------- /examples/console/console_test.go: -------------------------------------------------------------------------------- 1 | package console_test 2 | 3 | import ( 4 | "fmt" 5 | "testing" 6 | 7 | "github.com/lmittmann/go-solc" 8 | "github.com/lmittmann/w3" 9 | "github.com/lmittmann/w3/w3types" 10 | "github.com/lmittmann/w3/w3vm" 11 | ) 12 | 13 | var c = solc.New(solc.VersionLatest) 14 | 15 | func TestNewConsole(t *testing.T) { 16 | // compile contract 17 | contract, err := c.Compile(".", "ConsoleTest") 18 | if err != nil { 19 | t.Fatalf("Compilation failed: %v", err) 20 | } 21 | contractAddr := w3vm.RandA() 22 | 23 | tests := []struct { 24 | Name string 25 | WantLogs []string 26 | }{ 27 | { 28 | Name: "testHello", 29 | WantLogs: []string{"Hello, World!"}, 30 | }, 31 | { 32 | Name: "testInt", 33 | WantLogs: []string{"-42"}, 34 | }, 35 | { 36 | Name: "testBytes", 37 | WantLogs: []string{"0x74657374"}, 38 | }, 39 | { 40 | Name: "testBytes1", 41 | WantLogs: []string{"0xff"}, 42 | }, 43 | { 44 | Name: "testAddress", 45 | WantLogs: []string{"0x000000000000000000000000000000000000c0Fe"}, 46 | }, 47 | { 48 | Name: "testBool", 49 | WantLogs: []string{"true"}, 50 | }, 51 | } 52 | 53 | for _, test := range tests { 54 | t.Run(test.Name, func(t *testing.T) { 55 | // construct test function binding 56 | funcTest := w3.MustNewFunc(test.Name+"()", "") 57 | 58 | // setup test VM 59 | vm, _ := w3vm.New( 60 | w3vm.WithState(w3types.State{ 61 | contractAddr: { 62 | Code: contract.Code, 63 | }, 64 | }), 65 | ) 66 | 67 | // apply test function 68 | if _, err := vm.Apply( 69 | &w3types.Message{ 70 | To: &contractAddr, 71 | Func: funcTest, 72 | }, 73 | solc.NewConsole(newMockTB(t, test.WantLogs)), 74 | ); err != nil { 75 | t.Fatal(err) 76 | } 77 | }) 78 | } 79 | } 80 | 81 | type mockTB struct { 82 | testing.TB 83 | 84 | i int 85 | wantLogs []string 86 | } 87 | 88 | func newMockTB(tb testing.TB, wantLogs []string) *mockTB { 89 | return &mockTB{ 90 | TB: tb, 91 | wantLogs: wantLogs, 92 | } 93 | } 94 | 95 | func (tb *mockTB) Log(args ...interface{}) { 96 | defer func() { tb.i++ }() 97 | 98 | got := fmt.Sprint(args...) 99 | 100 | if tb.i >= len(tb.wantLogs) { 101 | tb.Fatalf("unexpected log: %q", got) 102 | } 103 | if want := tb.wantLogs[tb.i]; want != got { 104 | tb.Fatalf("Log[%d]: want %q, got %q", tb.i, want, got) 105 | } 106 | } 107 | -------------------------------------------------------------------------------- /params_darwin_arm64.go: -------------------------------------------------------------------------------- 1 | // Code generated by "go generate"; DO NOT EDIT. 2 | 3 | package solc 4 | 5 | func init() { 6 | solcBaseURL = "https://binaries.soliditylang.org/macosx-amd64/" 7 | 8 | solcVersions = map[Version]solcVersion{ 9 | Version0_8_24: {Sha256: [32]byte{0xcc, 0x2d, 0x44, 0xc7, 0x06, 0x90, 0x5c, 0xcc, 0x38, 0x2f, 0x48, 0x46, 0x25, 0xdf, 0xf6, 0x1d, 0x74, 0x1e, 0x0c, 0x24, 0x23, 0x2d, 0x22, 0x6f, 0x13, 0x9a, 0x68, 0x35, 0xfc, 0x64, 0x4f, 0x3f}, Path: "solc-macosx-amd64-v0.8.24+commit.e11b9ed9"}, 10 | Version0_8_25: {Sha256: [32]byte{0xcc, 0x3f, 0x94, 0xa7, 0x0a, 0xc6, 0x81, 0xb0, 0x30, 0x40, 0x84, 0xac, 0xc1, 0x98, 0x0a, 0xab, 0xe2, 0xa1, 0xbb, 0x32, 0x40, 0xd4, 0x4c, 0xe7, 0x6a, 0x8d, 0xf0, 0xe1, 0xe7, 0x7a, 0x21, 0x10}, Path: "solc-macosx-amd64-v0.8.25+commit.b61c2a91"}, 11 | Version0_8_26: {Sha256: [32]byte{0x0f, 0xf0, 0x16, 0xae, 0xf2, 0x39, 0x6b, 0x12, 0xd1, 0xfc, 0x65, 0x42, 0x9d, 0x8e, 0xa6, 0xcf, 0x53, 0xc2, 0xee, 0x4b, 0x04, 0x1b, 0xb8, 0x92, 0x56, 0x44, 0x61, 0x5e, 0xe1, 0xc3, 0x0a, 0xb9}, Path: "solc-macosx-amd64-v0.8.26+commit.8a97fa7a"}, 12 | Version0_8_27: {Sha256: [32]byte{0x8c, 0x40, 0x6f, 0xa5, 0xca, 0xb9, 0xbd, 0x0a, 0x17, 0x5d, 0xa0, 0x2c, 0x65, 0x20, 0x72, 0xf8, 0x14, 0xc3, 0xd0, 0x62, 0x05, 0xa2, 0xfd, 0x6d, 0x92, 0xbc, 0x15, 0x25, 0x99, 0xa6, 0xaa, 0xbb}, Path: "solc-macosx-amd64-v0.8.27+commit.40a35a09"}, 13 | Version0_8_28: {Sha256: [32]byte{0x81, 0x51, 0x5b, 0x0e, 0x53, 0xde, 0xaa, 0x26, 0x6d, 0x54, 0x95, 0x45, 0xcc, 0xaa, 0xc0, 0xa5, 0xa9, 0x6e, 0x6d, 0x4e, 0x82, 0x01, 0xc7, 0x7f, 0x67, 0x3b, 0x2c, 0x71, 0x09, 0x76, 0xd9, 0xea}, Path: "solc-macosx-amd64-v0.8.28+commit.7893614a"}, 14 | Version0_8_29: {Sha256: [32]byte{0x66, 0xfa, 0xbd, 0xd1, 0x7c, 0x8c, 0x00, 0x91, 0x31, 0x19, 0x97, 0xec, 0x7d, 0x17, 0xb4, 0xd9, 0x2e, 0x1b, 0x7b, 0x2c, 0x2d, 0x21, 0x3d, 0xc1, 0x4e, 0x4f, 0xf2, 0x8c, 0x3d, 0xe8, 0x64, 0xd1}, Path: "solc-macosx-amd64-v0.8.29+commit.ab55807c"}, 15 | Version0_8_30: {Sha256: [32]byte{0x73, 0x8d, 0xcd, 0xc6, 0xaf, 0xdd, 0xeb, 0x50, 0x5e, 0xe4, 0xe4, 0xef, 0x24, 0xf1, 0xc1, 0xfd, 0xba, 0x2b, 0x8c, 0x92, 0x4e, 0x61, 0x4c, 0xbb, 0xf5, 0x80, 0x1a, 0x5b, 0x06, 0x2d, 0xd6, 0x83}, Path: "solc-macosx-amd64-v0.8.30+commit.73712a01"}, 16 | } 17 | 18 | Versions = []Version{ 19 | Version0_8_24, 20 | Version0_8_25, 21 | Version0_8_26, 22 | Version0_8_27, 23 | Version0_8_28, 24 | Version0_8_29, 25 | Version0_8_30, 26 | } 27 | } 28 | 29 | const ( 30 | Version0_8_24 Version = "0.8.24" 31 | Version0_8_25 Version = "0.8.25" 32 | Version0_8_26 Version = "0.8.26" 33 | Version0_8_27 Version = "0.8.27" 34 | Version0_8_28 Version = "0.8.28" 35 | Version0_8_29 Version = "0.8.29" 36 | Version0_8_30 Version = "0.8.30" 37 | 38 | // Latest version of solc. 39 | VersionLatest = Version0_8_30 40 | ) 41 | -------------------------------------------------------------------------------- /compiler_test.go: -------------------------------------------------------------------------------- 1 | package solc_test 2 | 3 | import ( 4 | "encoding/hex" 5 | "fmt" 6 | "testing" 7 | 8 | "github.com/google/go-cmp/cmp" 9 | "github.com/google/go-cmp/cmp/cmpopts" 10 | "github.com/lmittmann/go-solc" 11 | ) 12 | 13 | func TestCompile(t *testing.T) { 14 | c := solc.New("0.8.17") 15 | 16 | tests := []struct { 17 | Name string 18 | ContractName string 19 | WantContract *solc.Contract 20 | WantErr error 21 | }{ 22 | { 23 | Name: "test1", 24 | ContractName: "Test1", 25 | WantContract: &solc.Contract{ 26 | Runtime: b("0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063f8a8fd6d14602d575b600080fd5b602a60405190815260200160405180910390f3fea26469706673582212209fce876a231310a49ee9848a2e6b937a9c3e07fb578272f974a37d4289160fee64736f6c63430008110033"), 27 | Constructor: b("0x6080604052348015600f57600080fd5b50607780601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063f8a8fd6d14602d575b600080fd5b602a60405190815260200160405180910390f3fea26469706673582212209fce876a231310a49ee9848a2e6b937a9c3e07fb578272f974a37d4289160fee64736f6c63430008110033"), 28 | Code: b("0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063f8a8fd6d14602d575b600080fd5b602a60405190815260200160405180910390f3fea26469706673582212209fce876a231310a49ee9848a2e6b937a9c3e07fb578272f974a37d4289160fee64736f6c63430008110033"), 29 | DeployCode: b("0x6080604052348015600f57600080fd5b50607780601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063f8a8fd6d14602d575b600080fd5b602a60405190815260200160405180910390f3fea26469706673582212209fce876a231310a49ee9848a2e6b937a9c3e07fb578272f974a37d4289160fee64736f6c63430008110033"), 30 | }, 31 | }, 32 | { 33 | Name: "test2", 34 | WantErr: cmpopts.AnyError, 35 | }, 36 | } 37 | 38 | for _, test := range tests { 39 | t.Run(test.Name+"_"+test.ContractName, func(t *testing.T) { 40 | contract, err := c.Compile("testdata/"+test.Name, test.ContractName) 41 | 42 | if diff := cmp.Diff(test.WantContract, contract); diff != "" { 43 | t.Errorf("(-want, +got)\n%s", diff) 44 | } 45 | if diff := cmp.Diff(test.WantErr, err, 46 | cmpopts.EquateErrors(), 47 | ); diff != "" { 48 | t.Errorf("(-want, +got):\n%s", diff) 49 | } 50 | }) 51 | } 52 | } 53 | 54 | // b returns a byte slice from a hexstring or panics if the hexstring does not 55 | // represent a valid byte slice. 56 | func b(hexBytes string) []byte { 57 | if !has0xPrefix(hexBytes) { 58 | panic(fmt.Sprintf("hex bytes %q must have 0x prefix", hexBytes)) 59 | } 60 | if len(hexBytes)%2 != 0 { 61 | panic(fmt.Sprintf("hex bytes %q must have even number of hex chars", hexBytes)) 62 | } 63 | 64 | bytes, err := hex.DecodeString(hexBytes[2:]) 65 | if err != nil { 66 | panic(err) 67 | } 68 | return bytes 69 | } 70 | 71 | // has0xPrefix validates hexStr begins with '0x' or '0X'. 72 | func has0xPrefix(hexStr string) bool { 73 | return len(hexStr) >= 2 && hexStr[0] == '0' && hexStr[1] == 'x' 74 | } 75 | -------------------------------------------------------------------------------- /download.go: -------------------------------------------------------------------------------- 1 | package solc 2 | 3 | import ( 4 | "crypto/sha256" 5 | "errors" 6 | "fmt" 7 | "io" 8 | "net/http" 9 | "os" 10 | "path/filepath" 11 | "sync" 12 | 13 | "github.com/lmittmann/go-solc/internal/mod" 14 | "golang.org/x/sync/singleflight" 15 | ) 16 | 17 | var ( 18 | maxTries = 2 19 | 20 | dg singleflight.Group // global download group 21 | ) 22 | 23 | // checkSolc checks for the existence of the solc binary at 24 | // "{MOD_ROOT}/.solc/bin/solc_{version}" and attempts to download it if it does 25 | // not exist yet. 26 | // 27 | // The version string must be in the format "0.8.17". 28 | func checkSolc(version Version) (string, error) { 29 | v, ok := solcVersions[version] 30 | if !ok { 31 | return "", fmt.Errorf("solc: unknown version %q", version) 32 | } 33 | 34 | if err := makeBinDir(); err != nil { 35 | return "", err 36 | } 37 | 38 | absSolcPath := filepath.Join(mod.Root, binPath, fmt.Sprintf("solc_v%s", version)) 39 | 40 | _, err, _ := dg.Do(version.String(), func() (any, error) { 41 | if _, err := os.Stat(absSolcPath); errors.Is(err, os.ErrNotExist) { 42 | // download solc_{version} 43 | var ( 44 | try int 45 | err error 46 | ) 47 | for ; try < maxTries && (try == 0 || err != nil); try++ { 48 | err = downloadSolc(absSolcPath, v) 49 | } 50 | if try >= maxTries { 51 | return "", fmt.Errorf("solc: failed to download solc %q: %w", version, err) 52 | } 53 | } 54 | 55 | // solc_{version} binary exists 56 | f, err := os.Open(absSolcPath) 57 | if err != nil { 58 | return "", err 59 | } 60 | defer f.Close() 61 | 62 | return nil, verifyChecksum(version, f, v) 63 | }) 64 | 65 | if err != nil { 66 | return "", err 67 | } 68 | return absSolcPath, nil 69 | } 70 | 71 | func verifyChecksum(version Version, r io.Reader, v solcVersion) error { 72 | hash := sha256.New() 73 | if _, err := io.Copy(hash, r); err != nil { 74 | return err 75 | } 76 | 77 | var gotSha256 [32]byte 78 | hash.Sum(gotSha256[:0]) 79 | 80 | if v.Sha256 != gotSha256 { 81 | return fmt.Errorf("solc: checksum mismatch for version %q", version) 82 | } 83 | return nil 84 | } 85 | 86 | // downloadSolc downloads the solc binary with the given version, writes it to a 87 | // file at the given path and return its content. 88 | func downloadSolc(path string, v solcVersion) error { 89 | // request compiler 90 | resp, err := http.Get(solcBaseURL + v.Path) 91 | if err != nil { 92 | return err 93 | } 94 | defer resp.Body.Close() 95 | 96 | // create file 97 | f, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE, 0o0764) 98 | if err != nil { 99 | return err 100 | } 101 | defer f.Close() 102 | 103 | // copy response body to file 104 | if _, err := io.Copy(f, resp.Body); err != nil { 105 | return err 106 | } 107 | return nil 108 | } 109 | 110 | // makeBinDir creates the directory ".solc/bin/" if it doesn't exist yet. 111 | func makeBinDir() error { 112 | binDirMux.Lock() 113 | defer binDirMux.Unlock() 114 | 115 | return os.MkdirAll(filepath.Join(mod.Root, binPath), perm) 116 | } 117 | 118 | var binDirMux sync.Mutex 119 | -------------------------------------------------------------------------------- /internal/console/console.go: -------------------------------------------------------------------------------- 1 | //go:generate go run gen.go 2 | package console 3 | 4 | import ( 5 | _ "embed" 6 | 7 | "github.com/ethereum/go-ethereum/accounts/abi" 8 | "github.com/ethereum/go-ethereum/common" 9 | ) 10 | 11 | // Source of the console contracts. 12 | // 13 | //go:embed console.sol 14 | var Src string 15 | 16 | // Address of the console contract. 17 | var Addr = common.HexToAddress("0x000000000000000000636F6e736F6c652e6c6f67") 18 | 19 | var ( 20 | argString = abi.Argument{Type: abi.Type{T: abi.StringTy}} 21 | argUint = abi.Argument{Type: abi.Type{T: abi.UintTy, Size: 256}} 22 | argInt = abi.Argument{Type: abi.Type{T: abi.IntTy, Size: 256}} 23 | argAddress = abi.Argument{Type: abi.Type{T: abi.AddressTy, Size: 20}} 24 | argBool = abi.Argument{Type: abi.Type{T: abi.BoolTy}} 25 | argBytes = abi.Argument{Type: abi.Type{T: abi.BytesTy}} 26 | argBytes1 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 1}} 27 | argBytes2 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 2}} 28 | argBytes3 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 3}} 29 | argBytes4 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 4}} 30 | argBytes5 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 5}} 31 | argBytes6 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 6}} 32 | argBytes7 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 7}} 33 | argBytes8 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 8}} 34 | argBytes9 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 9}} 35 | argBytes10 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 10}} 36 | argBytes11 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 11}} 37 | argBytes12 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 12}} 38 | argBytes13 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 13}} 39 | argBytes14 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 14}} 40 | argBytes15 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 15}} 41 | argBytes16 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 16}} 42 | argBytes17 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 17}} 43 | argBytes18 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 18}} 44 | argBytes19 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 19}} 45 | argBytes20 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 20}} 46 | argBytes21 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 21}} 47 | argBytes22 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 22}} 48 | argBytes23 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 23}} 49 | argBytes24 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 24}} 50 | argBytes25 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 25}} 51 | argBytes26 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 26}} 52 | argBytes27 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 27}} 53 | argBytes28 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 28}} 54 | argBytes29 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 29}} 55 | argBytes30 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 30}} 56 | argBytes31 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 31}} 57 | argBytes32 = abi.Argument{Type: abi.Type{T: abi.FixedBytesTy, Size: 32}} 58 | ) 59 | -------------------------------------------------------------------------------- /params_gen.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | 3 | package main 4 | 5 | import ( 6 | "encoding/hex" 7 | "encoding/json" 8 | "fmt" 9 | "net/http" 10 | "os" 11 | "slices" 12 | "strings" 13 | "text/template" 14 | 15 | "github.com/lmittmann/go-solc/internal/version" 16 | ) 17 | 18 | var ( 19 | solcBaseURL = "https://binaries.soliditylang.org/" 20 | 21 | tmpl = template.Must(template.New("").Funcs(template.FuncMap{ 22 | "replaceAll": strings.ReplaceAll, 23 | "last": func(s []*build) int { return len(s) - 1 }, 24 | }).Parse(tmplStr)) 25 | ) 26 | 27 | func main() { 28 | targets := []*target{ 29 | { 30 | BaseURL: solcBaseURL + "linux-amd64/", 31 | Fn: "params_linux_amd64.go", 32 | MinVersion: "0.5.0", 33 | }, 34 | { 35 | BaseURL: solcBaseURL + "macosx-amd64/", 36 | Fn: "params_darwin_amd64.go", 37 | MinVersion: "0.5.0", 38 | }, 39 | { 40 | BaseURL: solcBaseURL + "macosx-amd64/", 41 | Fn: "params_darwin_arm64.go", 42 | MinVersion: "0.8.24", 43 | }, 44 | } 45 | 46 | errCh := make(chan error) 47 | for _, target := range targets { 48 | target := target 49 | 50 | go func() { errCh <- gen(target) }() 51 | } 52 | 53 | for i := 0; i < len(targets); i++ { 54 | if err := <-errCh; err != nil { 55 | fmt.Println(err) 56 | } 57 | } 58 | } 59 | 60 | func gen(target *target) error { 61 | // fetch and decode list.json 62 | resp, err := http.Get(target.BaseURL + "list.json") 63 | if err != nil { 64 | return err 65 | } 66 | defer resp.Body.Close() 67 | 68 | var list struct { 69 | Builds []*build `json:"builds"` 70 | } 71 | if err := json.NewDecoder(resp.Body).Decode(&list); err != nil { 72 | return err 73 | } 74 | 75 | // open file 76 | f, err := os.Create(target.Fn) 77 | if err != nil { 78 | return err 79 | } 80 | defer f.Close() 81 | 82 | // execute template 83 | model := &model{ 84 | Target: target, 85 | Builds: slices.DeleteFunc(list.Builds, func(build *build) bool { 86 | return version.Compare(build.Version, target.MinVersion) < 0 87 | }), 88 | } 89 | if err := tmpl.Execute(f, model); err != nil { 90 | return err 91 | } 92 | return nil 93 | } 94 | 95 | func parseVersion(v string) (major, minor, patch int, err error) { 96 | _, err = fmt.Sscanf(v, "%d.%d.%d", &major, &minor, &patch) 97 | return 98 | } 99 | 100 | type target struct { 101 | BaseURL string 102 | Fn string 103 | MinVersion string 104 | } 105 | 106 | type build struct { 107 | Path string `json:"path"` 108 | Version string `json:"version"` 109 | Sha256 bytes32 `json:"sha256"` 110 | } 111 | 112 | // bytes32 is a byte array that is unmarshalled from a hexstring. 113 | type bytes32 [32]byte 114 | 115 | func (b *bytes32) UnmarshalText(text []byte) error { 116 | if len(text) != 66 { 117 | return fmt.Errorf("invalid hex string") 118 | } 119 | _, err := hex.Decode(b[:], text[2:]) 120 | return err 121 | } 122 | 123 | type model struct { 124 | Target *target `json:"target"` 125 | Builds []*build `json:"builds"` 126 | } 127 | 128 | const tmplStr = `// Code generated by "go generate"; DO NOT EDIT. 129 | 130 | package solc 131 | 132 | func init() { 133 | solcBaseURL = "{{ .Target.BaseURL }}" 134 | 135 | solcVersions = map[Version]solcVersion{ 136 | {{- range .Builds }} 137 | {{ $version := (printf "Version%s:" (replaceAll .Version "." "_")) -}} 138 | {{ printf "%-14s" $version }} {Sha256: [32]byte{ 139 | {{- range $i, $elem := .Sha256 -}} 140 | {{- if $i }}, {{ end -}} 141 | {{- printf "%#02v" $elem -}} 142 | {{- end -}} 143 | }, Path: "{{ .Path }}"}, 144 | {{- end }} 145 | } 146 | 147 | Versions = []Version{ 148 | {{- range .Builds }} 149 | {{ printf "Version%s," (replaceAll .Version "." "_") }} 150 | {{- end }} 151 | } 152 | } 153 | 154 | const ( 155 | {{- range .Builds }} 156 | {{ $version := (printf "%s" .Version) -}} 157 | {{ printf "Version%-6s Version = %q" (replaceAll .Version "." "_") .Version }} 158 | {{- end }} 159 | 160 | // Latest version of solc. 161 | VersionLatest = Version{{ replaceAll (index .Builds (last .Builds)).Version "." "_" }} 162 | ) 163 | ` 164 | -------------------------------------------------------------------------------- /options.go: -------------------------------------------------------------------------------- 1 | package solc 2 | 3 | // default settings options 4 | var ( 5 | defaultLang = langSolidity 6 | defaultRemappings []string = nil 7 | defaultOptimizer = &Optimizer{Enabled: true, Runs: 200} 8 | defaultViaIR = false 9 | defaultOutputSelection = map[string]map[string][]string{ 10 | "*": { 11 | "*": {"evm.bytecode.object", "evm.deployedBytecode.object"}, 12 | }, 13 | } 14 | defaultEVMVersions = map[Version]EVMVersion{ 15 | "0.5.0": EVMVersionByzantium, 16 | "0.5.1": EVMVersionByzantium, 17 | "0.5.2": EVMVersionByzantium, 18 | "0.5.3": EVMVersionByzantium, 19 | "0.5.4": EVMVersionByzantium, 20 | "0.5.5": EVMVersionPetersburg, 21 | "0.5.6": EVMVersionPetersburg, 22 | "0.5.7": EVMVersionPetersburg, 23 | "0.5.8": EVMVersionPetersburg, 24 | "0.5.9": EVMVersionPetersburg, 25 | "0.5.10": EVMVersionPetersburg, 26 | "0.5.11": EVMVersionPetersburg, 27 | "0.5.12": EVMVersionPetersburg, 28 | "0.5.13": EVMVersionPetersburg, 29 | "0.5.14": EVMVersionIstanbul, 30 | "0.5.15": EVMVersionIstanbul, 31 | "0.5.16": EVMVersionIstanbul, 32 | "0.5.17": EVMVersionIstanbul, 33 | "0.6.0": EVMVersionIstanbul, 34 | "0.6.1": EVMVersionIstanbul, 35 | "0.6.2": EVMVersionIstanbul, 36 | "0.6.3": EVMVersionIstanbul, 37 | "0.6.4": EVMVersionIstanbul, 38 | "0.6.5": EVMVersionIstanbul, 39 | "0.6.6": EVMVersionIstanbul, 40 | "0.6.7": EVMVersionIstanbul, 41 | "0.6.8": EVMVersionIstanbul, 42 | "0.6.9": EVMVersionIstanbul, 43 | "0.6.10": EVMVersionIstanbul, 44 | "0.6.11": EVMVersionIstanbul, 45 | "0.6.12": EVMVersionIstanbul, 46 | "0.7.0": EVMVersionIstanbul, 47 | "0.7.1": EVMVersionIstanbul, 48 | "0.7.2": EVMVersionIstanbul, 49 | "0.7.3": EVMVersionIstanbul, 50 | "0.7.4": EVMVersionIstanbul, 51 | "0.7.5": EVMVersionIstanbul, 52 | "0.7.6": EVMVersionIstanbul, 53 | "0.8.0": EVMVersionIstanbul, 54 | "0.8.1": EVMVersionIstanbul, 55 | "0.8.2": EVMVersionIstanbul, 56 | "0.8.3": EVMVersionIstanbul, 57 | "0.8.4": EVMVersionIstanbul, 58 | "0.8.5": EVMVersionBerlin, 59 | "0.8.6": EVMVersionBerlin, 60 | "0.8.7": EVMVersionLondon, 61 | "0.8.8": EVMVersionLondon, 62 | "0.8.9": EVMVersionLondon, 63 | "0.8.10": EVMVersionLondon, 64 | "0.8.11": EVMVersionLondon, 65 | "0.8.12": EVMVersionLondon, 66 | "0.8.13": EVMVersionLondon, 67 | "0.8.14": EVMVersionLondon, 68 | "0.8.15": EVMVersionLondon, 69 | "0.8.16": EVMVersionLondon, 70 | "0.8.17": EVMVersionLondon, 71 | "0.8.18": EVMVersionParis, 72 | "0.8.19": EVMVersionParis, 73 | "0.8.20": EVMVersionShanghai, 74 | "0.8.21": EVMVersionShanghai, 75 | "0.8.22": EVMVersionShanghai, 76 | "0.8.23": EVMVersionShanghai, 77 | "0.8.24": EVMVersionShanghai, 78 | "0.8.25": EVMVersionCancun, 79 | "0.8.26": EVMVersionCancun, 80 | "0.8.27": EVMVersionCancun, 81 | "0.8.28": EVMVersionCancun, 82 | "0.8.29": EVMVersionCancun, 83 | "0.8.30": EVMVersionPrague, 84 | } 85 | ) 86 | 87 | // An Option configures the compilation [Settings]. 88 | type Option func(*Settings) 89 | 90 | // WithOptimizer configures the compilation [Settings] to set the given 91 | // [Optimizer]. 92 | func WithOptimizer(o *Optimizer) Option { 93 | return func(s *Settings) { 94 | s.Optimizer = o 95 | } 96 | } 97 | 98 | // WithViaIR configures the compilation [Settings] to set viaIR to the given 99 | // parameter "enabled". 100 | func WithViaIR(enabled bool) Option { 101 | return func(s *Settings) { 102 | s.ViaIR = enabled 103 | } 104 | } 105 | 106 | // WithEVMVersion configures the compilation [Settings] to set the given EVM 107 | // version. 108 | func WithEVMVersion(evmVersion EVMVersion) Option { 109 | return func(s *Settings) { 110 | s.EVMVersion = evmVersion 111 | } 112 | } 113 | 114 | // WithRemappings configures the compilation [Settings] to set the remmappings options. 115 | // Each remapping is in standard format {src}={dst}. Destination path needs to be absolute. 116 | func WithRemappings(remappings []string) Option { 117 | return func(s *Settings) { 118 | s.Remappings = remappings 119 | } 120 | } 121 | -------------------------------------------------------------------------------- /internal/console/gen.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | 3 | package main 4 | 5 | import ( 6 | "embed" 7 | "fmt" 8 | "os" 9 | "strings" 10 | "text/template" 11 | 12 | "github.com/ethereum/go-ethereum/common" 13 | "github.com/ethereum/go-ethereum/crypto" 14 | "github.com/lmittmann/go-solc/internal/console" 15 | ) 16 | 17 | var ( 18 | //go:embed *.tmpl 19 | templates embed.FS 20 | 21 | logArgs = []string{"string", "uint", "address", "bool"} 22 | logArgsSet = setOf(logArgs) 23 | ) 24 | 25 | func main() { 26 | if err := run(); err != nil { 27 | fmt.Printf("error: %v\n", err) 28 | os.Exit(1) 29 | } 30 | } 31 | 32 | func run() error { 33 | // parse templates 34 | tmpl, err := template.New("").ParseFS(templates, "*") 35 | if err != nil { 36 | return err 37 | } 38 | 39 | signatures := genSignatures() 40 | 41 | args := make([]Args, len(signatures)) 42 | for i, a := range signatures { 43 | sig := "log(" + strings.Join(a, ",") + ")" 44 | sel := ([4]byte)(crypto.Keccak256([]byte(sig))[:4]) 45 | 46 | args[i] = Args{ 47 | Sig: sig, 48 | Sel: sel, 49 | Args: a, 50 | } 51 | } 52 | 53 | model := &model{ 54 | Addr: console.Addr, 55 | Args: args, 56 | } 57 | 58 | if err := gen("args.go", tmpl, model); err != nil { 59 | return err 60 | } 61 | if err := gen("console.sol", tmpl, model); err != nil { 62 | return err 63 | } 64 | return nil 65 | } 66 | 67 | func genSignatures() [][]string { 68 | signatures := [][]string{ 69 | {}, 70 | {"string"}, 71 | {"uint"}, 72 | {"int"}, 73 | {"bool"}, 74 | {"address"}, 75 | {"bytes"}, 76 | {"bytes1"}, 77 | {"bytes2"}, 78 | {"bytes3"}, 79 | {"bytes4"}, 80 | {"bytes5"}, 81 | {"bytes6"}, 82 | {"bytes7"}, 83 | {"bytes8"}, 84 | {"bytes9"}, 85 | {"bytes10"}, 86 | {"bytes11"}, 87 | {"bytes12"}, 88 | {"bytes13"}, 89 | {"bytes14"}, 90 | {"bytes15"}, 91 | {"bytes16"}, 92 | {"bytes17"}, 93 | {"bytes18"}, 94 | {"bytes19"}, 95 | {"bytes20"}, 96 | {"bytes21"}, 97 | {"bytes22"}, 98 | {"bytes23"}, 99 | {"bytes24"}, 100 | {"bytes25"}, 101 | {"bytes26"}, 102 | {"bytes27"}, 103 | {"bytes28"}, 104 | {"bytes29"}, 105 | {"bytes30"}, 106 | {"bytes31"}, 107 | {"bytes32"}, 108 | } 109 | 110 | for _, arg0 := range logArgs { 111 | for _, arg1 := range logArgs { 112 | signatures = append(signatures, []string{arg0, arg1}) 113 | } 114 | } 115 | 116 | for _, arg0 := range logArgs { 117 | for _, arg1 := range logArgs { 118 | for _, arg2 := range logArgs { 119 | signatures = append(signatures, []string{arg0, arg1, arg2}) 120 | } 121 | } 122 | } 123 | 124 | for _, arg0 := range logArgs { 125 | for _, arg1 := range logArgs { 126 | for _, arg2 := range logArgs { 127 | for _, arg3 := range logArgs { 128 | signatures = append(signatures, []string{arg0, arg1, arg2, arg3}) 129 | } 130 | } 131 | } 132 | } 133 | 134 | return signatures 135 | } 136 | 137 | func gen(name string, tmpl *template.Template, model *model) error { 138 | f, err := os.Create(name) 139 | if err != nil { 140 | return err 141 | } 142 | defer f.Close() 143 | 144 | fmt.Fprintln(f, "// Code generated by go generate; DO NOT EDIT.") 145 | 146 | return tmpl.ExecuteTemplate(f, name+".tmpl", model) 147 | } 148 | 149 | type model struct { 150 | Addr common.Address 151 | Args []Args 152 | } 153 | 154 | type Args struct { 155 | Sig string // function signature 156 | Sel [4]byte // 4 bytes selector 157 | Args []string 158 | } 159 | 160 | func (a Args) SelString() string { 161 | return fmt.Sprintf("{0x%02x, 0x%02x, 0x%02x, 0x%02x}", a.Sel[0], a.Sel[1], a.Sel[2], a.Sel[3]) 162 | } 163 | 164 | func (a Args) SignatureArgs() string { 165 | args := make([]string, len(a.Args)) 166 | for i, arg := range a.Args { 167 | switch arg { 168 | case "string", "bytes": 169 | args[i] = fmt.Sprintf("%s memory p%d", arg, i) 170 | default: 171 | args[i] = fmt.Sprintf("%s p%d", arg, i) 172 | } 173 | } 174 | return strings.Join(args, ", ") 175 | } 176 | 177 | func (a Args) LogTypeSignature() string { 178 | return fmt.Sprintf("log%s(%s)", strings.Title(a.Args[0]), a.SignatureArgs()) 179 | } 180 | 181 | func (a Args) LogSignature() string { 182 | return fmt.Sprintf("log(%s)", a.SignatureArgs()) 183 | } 184 | 185 | func (a Args) IsLogType() bool { 186 | return len(a.Args) == 1 187 | } 188 | 189 | func (a Args) IsLog() bool { 190 | if len(a.Args) == 0 || len(a.Args) >= 2 { 191 | return true 192 | } 193 | _, ok := logArgsSet[a.Args[0]] 194 | return ok 195 | } 196 | 197 | func (a Args) Params() string { 198 | params := make([]string, len(a.Args)) 199 | for i := range a.Args { 200 | params[i] = fmt.Sprintf("p%d", i) 201 | } 202 | return strings.Join(params, ", ") 203 | } 204 | 205 | func (a Args) ArgTypes() string { 206 | args := make([]string, len(a.Args)) 207 | for i, arg := range a.Args { 208 | args[i] = fmt.Sprintf("arg%s", strings.Title(arg)) 209 | } 210 | return strings.Join(args, ", ") 211 | } 212 | 213 | func setOf[T comparable](s []T) map[T]struct{} { 214 | m := make(map[T]struct{}, len(s)) 215 | for _, v := range s { 216 | m[v] = struct{}{} 217 | } 218 | return m 219 | } 220 | -------------------------------------------------------------------------------- /types.go: -------------------------------------------------------------------------------- 1 | package solc 2 | 3 | import ( 4 | "encoding/hex" 5 | "encoding/json" 6 | "fmt" 7 | "strings" 8 | ) 9 | 10 | // Contract represents a compiled contract. 11 | type Contract struct { 12 | Runtime []byte // The runtime bytecode of the contract. 13 | Constructor []byte // The constructor bytecode of the contract. 14 | Code []byte // Deprecated: The bytecode of the contract after deployment. 15 | DeployCode []byte // Deprecated: The bytecode to deploy the contract. 16 | } 17 | 18 | // lang represents the language of the source code. 19 | type lang string 20 | 21 | const ( 22 | langSolidity lang = "Solidity" 23 | langYul lang = "Yul" 24 | ) 25 | 26 | // EVMVersion represents the EVM version to compile for. 27 | type EVMVersion string 28 | 29 | const ( 30 | EVMVersionPrague EVMVersion = "prague" 31 | EVMVersionCancun EVMVersion = "cancun" 32 | EVMVersionShanghai EVMVersion = "shanghai" 33 | EVMVersionParis EVMVersion = "paris" 34 | EVMVersionLondon EVMVersion = "london" 35 | EVMVersionBerlin EVMVersion = "berlin" 36 | EVMVersionIstanbul EVMVersion = "istanbul" 37 | EVMVersionPetersburg EVMVersion = "petersburg" 38 | EVMVersionByzantium EVMVersion = "byzantium" 39 | EVMVersionOsaka EVMVersion = "osaka" 40 | ) 41 | 42 | type input struct { 43 | Lang lang `json:"language"` 44 | Sources map[string]src `json:"sources"` 45 | Settings *Settings `json:"settings"` 46 | } 47 | 48 | type src struct { 49 | Keccak256 string `json:"keccak256,omitempty"` 50 | Content string `json:"content,omitempty"` 51 | URLS []string `json:"urls,omitempty"` 52 | } 53 | 54 | // Settings for the compilation. 55 | type Settings struct { 56 | lang lang `json:"-"` 57 | Remappings []string `json:"remappings,omitempty"` 58 | Optimizer *Optimizer `json:"optimizer"` 59 | ViaIR bool `json:"viaIR,omitempty"` 60 | EVMVersion EVMVersion `json:"evmVersion"` 61 | OutputSelection map[string]map[string][]string `json:"outputSelection"` 62 | } 63 | 64 | type Optimizer struct { 65 | Enabled bool `json:"enabled"` 66 | Runs uint64 `json:"runs"` 67 | } 68 | 69 | type output struct { 70 | Errors []error_ `json:"errors"` 71 | Sources map[string]srcOut `json:"sources"` 72 | Contracts map[string]map[string]contract `json:"contracts"` 73 | } 74 | 75 | func (o *output) Err() error { 76 | var fmtMsgs []string 77 | for _, err := range o.Errors { 78 | if strings.EqualFold(err.Severity, "error") { 79 | fmtMsgs = append(fmtMsgs, err.FormattedMessage) 80 | } 81 | } 82 | 83 | if len(fmtMsgs) == 0 { 84 | return nil 85 | } 86 | return fmt.Errorf("solc: compilation failed\n%s", strings.Join(fmtMsgs, "\n")) 87 | } 88 | 89 | type error_ struct { 90 | SourceLocation sourceLocation `json:"sourceLocation"` 91 | Type string `json:"type"` 92 | Component string `json:"component"` 93 | Severity string `json:"severity"` 94 | Message string `json:"message"` 95 | FormattedMessage string `json:"formattedMessage"` 96 | } 97 | 98 | type sourceLocation struct { 99 | File string `json:"file"` 100 | Start int `json:"start"` 101 | End int `json:"end"` 102 | } 103 | 104 | type srcOut struct { 105 | ID int `json:"id"` 106 | AST json.RawMessage `json:"ast"` 107 | LegacyAST json.RawMessage `json:"legacyAST"` 108 | } 109 | 110 | type contract struct { 111 | ABI []json.RawMessage `json:"abi"` 112 | Metadata string `json:"metadata"` 113 | UserDoc json.RawMessage `json:"userdoc"` 114 | DevDoc json.RawMessage `json:"devdoc"` 115 | IR string `json:"ir"` 116 | EVM evm `json:"evm"` 117 | } 118 | 119 | type evm struct { 120 | Assembly string `json:"assembly"` 121 | LegacyAssembly json.RawMessage `json:"legacyAssembly"` 122 | Bytecode bytecode `json:"bytecode"` 123 | DeployedBytecode bytecode `json:"deployedBytecode"` 124 | MethodIdentifiers map[string]string `json:"methodIdentifiers"` 125 | GasEstimates map[string]map[string]string `json:"gasEstimates"` 126 | } 127 | 128 | type bytecode struct { 129 | Object hexBytes `json:"object"` 130 | Opcodes string `json:"opcodes"` 131 | SourceMap string `json:"sourceMap"` 132 | LinkReferences map[string]map[string][]linkReference `json:"linkReferences"` 133 | } 134 | 135 | type linkReference struct { 136 | Start int `json:"start"` 137 | End int `json:"end"` 138 | } 139 | 140 | // hexBytes is a byte slice that is unmarshalled from a hexstring. 141 | type hexBytes []byte 142 | 143 | func (b *hexBytes) UnmarshalText(text []byte) error { 144 | *b = make([]byte, hex.DecodedLen(len(text))) 145 | _, err := hex.Decode(*b, text) 146 | return err 147 | } 148 | 149 | type solcVersion struct { 150 | Path string 151 | Sha256 [32]byte 152 | } 153 | -------------------------------------------------------------------------------- /compiler.go: -------------------------------------------------------------------------------- 1 | package solc 2 | 3 | import ( 4 | "bytes" 5 | "crypto/sha256" 6 | _ "embed" 7 | "encoding/json" 8 | "fmt" 9 | "io/fs" 10 | "os" 11 | "os/exec" 12 | "path/filepath" 13 | "strings" 14 | "sync" 15 | 16 | "github.com/lmittmann/go-solc/internal/console" 17 | "github.com/lmittmann/go-solc/internal/mod" 18 | "golang.org/x/sync/singleflight" 19 | ) 20 | 21 | var ( 22 | // The path within the module root where solc binaries are stored. 23 | binPath = ".solc/bin/" 24 | 25 | perm = os.FileMode(0o0775) 26 | 27 | // global compiler cache 28 | group = new(singleflight.Group) 29 | cacheMux sync.RWMutex 30 | cache = make(map[string]cacheItem) 31 | ) 32 | 33 | type cacheItem struct { 34 | out *output 35 | err error 36 | } 37 | 38 | type Compiler struct { 39 | version Version // Solc version 40 | 41 | once sync.Once 42 | solcAbsPath string // solc absolute path 43 | err error // initialization error 44 | } 45 | 46 | func New(version Version) *Compiler { 47 | return &Compiler{ 48 | version: version, 49 | } 50 | } 51 | 52 | // init initializes the compiler. 53 | func (c *Compiler) init() { 54 | // check mod root is set 55 | if mod.Root == "" { 56 | c.err = fmt.Errorf("solc: no go.mod detected") 57 | return 58 | } 59 | 60 | // check or download solc version 61 | c.solcAbsPath, c.err = checkSolc(c.version) 62 | } 63 | 64 | // Compile all contracts in the given directory and return the contract code of 65 | // the contract with the given name. 66 | func (c *Compiler) Compile(dir, contract string, opts ...Option) (*Contract, error) { 67 | out, err := c.compile(dir, contract, opts) 68 | if err != nil { 69 | return nil, err 70 | } 71 | 72 | // check for compilation errors 73 | if err := out.Err(); err != nil { 74 | return nil, err 75 | } 76 | 77 | // find contract code 78 | var con *Contract 79 | for _, conMap := range out.Contracts { 80 | for conName, c := range conMap { 81 | if conName == contract { 82 | con = &Contract{ 83 | Runtime: c.EVM.DeployedBytecode.Object, 84 | Constructor: c.EVM.Bytecode.Object, 85 | Code: c.EVM.DeployedBytecode.Object, 86 | DeployCode: c.EVM.Bytecode.Object, 87 | } 88 | break 89 | } 90 | } 91 | } 92 | if con == nil { 93 | return nil, fmt.Errorf("solc: unknown contract %q", contract) 94 | } 95 | return con, nil 96 | } 97 | 98 | // MustCompile is like [Compiler.Compile] but panics on error. 99 | func (c *Compiler) MustCompile(dir, contract string, opts ...Option) *Contract { 100 | code, err := c.Compile(dir, contract, opts...) 101 | if err != nil { 102 | panic(err) 103 | } 104 | return code 105 | } 106 | 107 | // compile 108 | func (c *Compiler) compile(baseDir, contract string, opts []Option) (*output, error) { 109 | // init an return on error 110 | c.once.Do(c.init) 111 | if c.err != nil { 112 | return nil, c.err 113 | } 114 | 115 | // check the directory exists 116 | if stat, err := os.Stat(baseDir); err != nil || !stat.IsDir() { 117 | if err != nil { 118 | return nil, err 119 | } 120 | return nil, fmt.Errorf("%s is not a directory", baseDir) 121 | } 122 | 123 | // get absolute path of base directory 124 | absDir, err := filepath.Abs(baseDir) 125 | if err != nil { 126 | return nil, err 127 | } 128 | 129 | // build src map 130 | srcMap, err := buildSrcMap(absDir) 131 | if err != nil { 132 | return nil, err 133 | } 134 | 135 | // add console.sol to src map 136 | srcMap["console.sol"] = src{ 137 | Content: console.Src, 138 | } 139 | 140 | // build settings 141 | s := c.buildSettings(opts) 142 | in := &input{ 143 | Lang: s.lang, 144 | Sources: srcMap, 145 | Settings: s, 146 | } 147 | 148 | // run solc 149 | return c.runWithCache(absDir, in) 150 | } 151 | 152 | func (c *Compiler) runWithCache(baseDir string, in *input) (*output, error) { 153 | // hash input 154 | h := sha256.New() 155 | if err := json.NewEncoder(h).Encode(in); err != nil { 156 | return nil, err 157 | } 158 | var hash [32]byte 159 | h.Sum(hash[:0]) 160 | 161 | // run with cache 162 | cacheKey := fmt.Sprintf("%s_%x", c.version, hash) 163 | out, err, _ := group.Do(cacheKey, func() (any, error) { 164 | // check cache 165 | cacheMux.RLock() 166 | val, ok := cache[cacheKey] 167 | cacheMux.RUnlock() 168 | if ok { 169 | return val.out, val.err 170 | } 171 | 172 | // run solc 173 | out, err := c.run(baseDir, in) 174 | 175 | // update cache 176 | cacheMux.Lock() 177 | cache[cacheKey] = cacheItem{out, err} 178 | cacheMux.Unlock() 179 | 180 | return out, err 181 | }) 182 | if err != nil { 183 | return nil, err 184 | } 185 | return out.(*output), nil 186 | } 187 | 188 | func (c *Compiler) run(baseDir string, in *input) (*output, error) { 189 | inputBuf := bytes.NewBuffer(nil) 190 | outputBuf := bytes.NewBuffer(nil) 191 | 192 | // encode input 193 | if err := json.NewEncoder(inputBuf).Encode(in); err != nil { 194 | return nil, err 195 | } 196 | 197 | var allowPaths []string 198 | allowPaths = append(allowPaths, baseDir) 199 | 200 | for _, remap := range in.Settings.Remappings { 201 | parts := strings.Split(remap, "=") 202 | if len(parts) != 2 { 203 | //invalid remapping 204 | continue 205 | } 206 | allowPaths = append(allowPaths, parts[1]) 207 | } 208 | 209 | // run solc 210 | ex := exec.Command(c.solcAbsPath, 211 | "--allow-paths", strings.Join(allowPaths, ","), 212 | "--standard-json", 213 | ) 214 | ex.Stdin = inputBuf 215 | ex.Stdout = outputBuf 216 | if err := ex.Run(); err != nil { 217 | return nil, err 218 | } 219 | 220 | // decode output 221 | var output *output 222 | if err := json.NewDecoder(outputBuf).Decode(&output); err != nil { 223 | return nil, err 224 | } 225 | return output, nil 226 | } 227 | 228 | func buildSrcMap(absDir string) (map[string]src, error) { 229 | fsys := os.DirFS(absDir) 230 | 231 | srcMap := make(map[string]src) 232 | err := fs.WalkDir(fsys, ".", func(p string, d fs.DirEntry, err error) error { 233 | if d.IsDir() || filepath.Ext(p) != ".sol" { 234 | return nil 235 | } 236 | srcMap[p] = src{ 237 | URLS: []string{filepath.Join(absDir, p)}, 238 | } 239 | return nil 240 | }) 241 | if err != nil { 242 | return nil, err 243 | } 244 | return srcMap, nil 245 | } 246 | 247 | // buildSettings builds the default settings and applies all options. 248 | func (c *Compiler) buildSettings(opts []Option) *Settings { 249 | defaultEVMVersion, ok := defaultEVMVersions[c.version] 250 | if !ok { 251 | panic("unexpected solc version") 252 | } 253 | s := &Settings{ 254 | lang: defaultLang, 255 | Remappings: defaultRemappings, 256 | Optimizer: defaultOptimizer, 257 | ViaIR: defaultViaIR, 258 | EVMVersion: defaultEVMVersion, 259 | } 260 | for _, opt := range opts { 261 | opt(s) 262 | } 263 | s.OutputSelection = defaultOutputSelection 264 | return s 265 | } 266 | -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= 2 | github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= 3 | github.com/VictoriaMetrics/fastcache v1.12.2 h1:N0y9ASrJ0F6h0QaC3o6uJb3NIZ9VKLjCM7NQbSmF7WI= 4 | github.com/VictoriaMetrics/fastcache v1.12.2/go.mod h1:AmC+Nzz1+3G2eCPapF6UcsnkThDcMsQicp4xDukwJYI= 5 | github.com/bits-and-blooms/bitset v1.20.0 h1:2F+rfL86jE2d/bmw7OhqUg2Sj/1rURkBn3MdfoPyRVU= 6 | github.com/bits-and-blooms/bitset v1.20.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= 7 | github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= 8 | github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= 9 | github.com/consensys/bavard v0.1.27 h1:j6hKUrGAy/H+gpNrpLU3I26n1yc+VMGmd6ID5+gAhOs= 10 | github.com/consensys/bavard v0.1.27/go.mod h1:k/zVjHHC4B+PQy1Pg7fgvG3ALicQw540Crag8qx+dZs= 11 | github.com/consensys/gnark-crypto v0.16.0 h1:8Dl4eYmUWK9WmlP1Bj6je688gBRJCJbT8Mw4KoTAawo= 12 | github.com/consensys/gnark-crypto v0.16.0/go.mod h1:Ke3j06ndtPTVvo++PhGNgvm+lgpLvzbcE2MqljY7diU= 13 | github.com/crate-crypto/go-eth-kzg v1.3.0 h1:05GrhASN9kDAidaFJOda6A4BEvgvuXbazXg/0E3OOdI= 14 | github.com/crate-crypto/go-eth-kzg v1.3.0/go.mod h1:J9/u5sWfznSObptgfa92Jq8rTswn6ahQWEuiLHOjCUI= 15 | github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a h1:W8mUrRp6NOVl3J+MYp5kPMoUZPp7aOYHtaua31lwRHg= 16 | github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a/go.mod h1:sTwzHBvIzm2RfVCGNEBZgRyjwK40bVoun3ZnGOCafNM= 17 | github.com/crate-crypto/go-kzg-4844 v1.1.0 h1:EN/u9k2TF6OWSHrCCDBBU6GLNMq88OspHHlMnHfoyU4= 18 | github.com/crate-crypto/go-kzg-4844 v1.1.0/go.mod h1:JolLjpSff1tCCJKaJx4psrlEdlXuJEC996PL3tTAFks= 19 | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= 20 | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 21 | github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= 22 | github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= 23 | github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 h1:YLtO71vCjJRCBcrPMtQ9nqBsqpA1m5sE92cU+pd5Mcc= 24 | github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= 25 | github.com/ethereum/c-kzg-4844/v2 v2.1.0 h1:gQropX9YFBhl3g4HYhwE70zq3IHFRgbbNPw0Shwzf5w= 26 | github.com/ethereum/c-kzg-4844/v2 v2.1.0/go.mod h1:TC48kOKjJKPbN7C++qIgt0TJzZ70QznYR7Ob+WXl57E= 27 | github.com/ethereum/go-ethereum v1.15.11 h1:JK73WKeu0WC0O1eyX+mdQAVHUV+UR1a9VB/domDngBU= 28 | github.com/ethereum/go-ethereum v1.15.11/go.mod h1:mf8YiHIb0GR4x4TipcvBUPxJLw1mFdmxzoDi11sDRoI= 29 | github.com/ethereum/go-verkle v0.2.2 h1:I2W0WjnrFUIzzVPwm8ykY+7pL2d4VhlsePn4j7cnFk8= 30 | github.com/ethereum/go-verkle v0.2.2/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= 31 | github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= 32 | github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= 33 | github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= 34 | github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= 35 | github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= 36 | github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= 37 | github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= 38 | github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= 39 | github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= 40 | github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= 41 | github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= 42 | github.com/holiman/uint256 v1.3.2 h1:a9EgMPSC1AAaj1SZL5zIQD3WbwTuHrMGOerLjGmM/TA= 43 | github.com/holiman/uint256 v1.3.2/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= 44 | github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= 45 | github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= 46 | github.com/leanovate/gopter v0.2.11 h1:vRjThO1EKPb/1NsDXuDrzldR28RLkBflWYcU9CvzWu4= 47 | github.com/leanovate/gopter v0.2.11/go.mod h1:aK3tzZP/C+p1m3SPRE4SYZFGP7jjkuSI4f7Xvpt0S9c= 48 | github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= 49 | github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= 50 | github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= 51 | github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU= 52 | github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= 53 | github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= 54 | github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= 55 | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= 56 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 57 | github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= 58 | github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= 59 | github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= 60 | github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= 61 | github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= 62 | github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= 63 | github.com/supranational/blst v0.3.14 h1:xNMoHRJOTwMn63ip6qoWJ2Ymgvj7E2b9jY2FAwY+qRo= 64 | github.com/supranational/blst v0.3.14/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= 65 | github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= 66 | github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= 67 | github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= 68 | github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= 69 | golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= 70 | golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= 71 | golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= 72 | golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= 73 | golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= 74 | golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 75 | gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= 76 | gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= 77 | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= 78 | gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 79 | rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= 80 | rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= 81 | -------------------------------------------------------------------------------- /examples/go.sum: -------------------------------------------------------------------------------- 1 | github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ= 2 | github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= 3 | github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= 4 | github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= 5 | github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= 6 | github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= 7 | github.com/VictoriaMetrics/fastcache v1.12.2 h1:N0y9ASrJ0F6h0QaC3o6uJb3NIZ9VKLjCM7NQbSmF7WI= 8 | github.com/VictoriaMetrics/fastcache v1.12.2/go.mod h1:AmC+Nzz1+3G2eCPapF6UcsnkThDcMsQicp4xDukwJYI= 9 | github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah4HI848JfFxHt+iPb26b4zyfspmqY0/8= 10 | github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= 11 | github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= 12 | github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= 13 | github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= 14 | github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= 15 | github.com/bits-and-blooms/bitset v1.20.0 h1:2F+rfL86jE2d/bmw7OhqUg2Sj/1rURkBn3MdfoPyRVU= 16 | github.com/bits-and-blooms/bitset v1.20.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= 17 | github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= 18 | github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= 19 | github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= 20 | github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc h1:4pZI35227imm7yK2bGPcfpFEmuY1gc2YSTShr4iJBfs= 21 | github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc/go.mod h1:X4/0JoqgTIPSFcRA/P6INZzIuyqdFY5rm8tb41s9okk= 22 | github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY= 23 | github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30= 24 | github.com/charmbracelet/x/ansi v0.8.0 h1:9GTq3xq9caJW8ZrBTe0LIe2fvfLR/bYXKTx2llXn7xE= 25 | github.com/charmbracelet/x/ansi v0.8.0/go.mod h1:wdYl/ONOLHLIVmQaxbIYEC/cRKOQyjTkowiI4blgS9Q= 26 | github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd h1:vy0GVL4jeHEwG5YOXDmi86oYw2yuYUGqz6a8sLwg0X8= 27 | github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs= 28 | github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ= 29 | github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg= 30 | github.com/cockroachdb/errors v1.11.3 h1:5bA+k2Y6r+oz/6Z/RFlNeVCesGARKuC6YymtcDrbC/I= 31 | github.com/cockroachdb/errors v1.11.3/go.mod h1:m4UIW4CDjx+R5cybPsNrRbreomiFqt8o1h1wUVazSd8= 32 | github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce h1:giXvy4KSc/6g/esnpM7Geqxka4WSqI1SZc7sMJFd3y4= 33 | github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce/go.mod h1:9/y3cnZ5GKakj/H4y9r9GTjCvAFta7KLgSHPJJYc52M= 34 | github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= 35 | github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= 36 | github.com/cockroachdb/pebble v1.1.2 h1:CUh2IPtR4swHlEj48Rhfzw6l/d0qA31fItcIszQVIsA= 37 | github.com/cockroachdb/pebble v1.1.2/go.mod h1:4exszw1r40423ZsmkG/09AFEG83I0uDgfujJdbL6kYU= 38 | github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= 39 | github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= 40 | github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= 41 | github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= 42 | github.com/consensys/bavard v0.1.27 h1:j6hKUrGAy/H+gpNrpLU3I26n1yc+VMGmd6ID5+gAhOs= 43 | github.com/consensys/bavard v0.1.27/go.mod h1:k/zVjHHC4B+PQy1Pg7fgvG3ALicQw540Crag8qx+dZs= 44 | github.com/consensys/gnark-crypto v0.16.0 h1:8Dl4eYmUWK9WmlP1Bj6je688gBRJCJbT8Mw4KoTAawo= 45 | github.com/consensys/gnark-crypto v0.16.0/go.mod h1:Ke3j06ndtPTVvo++PhGNgvm+lgpLvzbcE2MqljY7diU= 46 | github.com/crate-crypto/go-eth-kzg v1.3.0 h1:05GrhASN9kDAidaFJOda6A4BEvgvuXbazXg/0E3OOdI= 47 | github.com/crate-crypto/go-eth-kzg v1.3.0/go.mod h1:J9/u5sWfznSObptgfa92Jq8rTswn6ahQWEuiLHOjCUI= 48 | github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a h1:W8mUrRp6NOVl3J+MYp5kPMoUZPp7aOYHtaua31lwRHg= 49 | github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a/go.mod h1:sTwzHBvIzm2RfVCGNEBZgRyjwK40bVoun3ZnGOCafNM= 50 | github.com/crate-crypto/go-kzg-4844 v1.1.0 h1:EN/u9k2TF6OWSHrCCDBBU6GLNMq88OspHHlMnHfoyU4= 51 | github.com/crate-crypto/go-kzg-4844 v1.1.0/go.mod h1:JolLjpSff1tCCJKaJx4psrlEdlXuJEC996PL3tTAFks= 52 | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 53 | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= 54 | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 55 | github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= 56 | github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= 57 | github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= 58 | github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= 59 | github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 h1:YLtO71vCjJRCBcrPMtQ9nqBsqpA1m5sE92cU+pd5Mcc= 60 | github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= 61 | github.com/ethereum/c-kzg-4844/v2 v2.1.0 h1:gQropX9YFBhl3g4HYhwE70zq3IHFRgbbNPw0Shwzf5w= 62 | github.com/ethereum/c-kzg-4844/v2 v2.1.0/go.mod h1:TC48kOKjJKPbN7C++qIgt0TJzZ70QznYR7Ob+WXl57E= 63 | github.com/ethereum/go-ethereum v1.15.11 h1:JK73WKeu0WC0O1eyX+mdQAVHUV+UR1a9VB/domDngBU= 64 | github.com/ethereum/go-ethereum v1.15.11/go.mod h1:mf8YiHIb0GR4x4TipcvBUPxJLw1mFdmxzoDi11sDRoI= 65 | github.com/ethereum/go-verkle v0.2.2 h1:I2W0WjnrFUIzzVPwm8ykY+7pL2d4VhlsePn4j7cnFk8= 66 | github.com/ethereum/go-verkle v0.2.2/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= 67 | github.com/getsentry/sentry-go v0.27.0 h1:Pv98CIbtB3LkMWmXi4Joa5OOcwbmnX88sF5qbK3r3Ps= 68 | github.com/getsentry/sentry-go v0.27.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= 69 | github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= 70 | github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= 71 | github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= 72 | github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= 73 | github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= 74 | github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= 75 | github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= 76 | github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= 77 | github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= 78 | github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= 79 | github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= 80 | github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= 81 | github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= 82 | github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= 83 | github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= 84 | github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= 85 | github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= 86 | github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= 87 | github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= 88 | github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= 89 | github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= 90 | github.com/holiman/uint256 v1.3.2 h1:a9EgMPSC1AAaj1SZL5zIQD3WbwTuHrMGOerLjGmM/TA= 91 | github.com/holiman/uint256 v1.3.2/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= 92 | github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= 93 | github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= 94 | github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= 95 | github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= 96 | github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= 97 | github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= 98 | github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= 99 | github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= 100 | github.com/leanovate/gopter v0.2.11 h1:vRjThO1EKPb/1NsDXuDrzldR28RLkBflWYcU9CvzWu4= 101 | github.com/leanovate/gopter v0.2.11/go.mod h1:aK3tzZP/C+p1m3SPRE4SYZFGP7jjkuSI4f7Xvpt0S9c= 102 | github.com/lmittmann/w3 v0.19.5 h1:WwVRyIwhRLfIahmpB1EglsB3o1XWsgydgrxIUp5upFQ= 103 | github.com/lmittmann/w3 v0.19.5/go.mod h1:pN97sGGYGvsbqOYj/ms3Pd+7k/aiK/9OpNcxMmmzSOI= 104 | github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= 105 | github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= 106 | github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= 107 | github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= 108 | github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= 109 | github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= 110 | github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= 111 | github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= 112 | github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= 113 | github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= 114 | github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU= 115 | github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= 116 | github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc= 117 | github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk= 118 | github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= 119 | github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= 120 | github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= 121 | github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 122 | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= 123 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 124 | github.com/prometheus/client_golang v1.12.0 h1:C+UIj/QWtmqY13Arb8kwMt5j34/0Z2iKamrJ+ryC0Gg= 125 | github.com/prometheus/client_golang v1.12.0/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= 126 | github.com/prometheus/client_model v0.2.1-0.20210607210712-147c58e9608a h1:CmF68hwI0XsOQ5UwlBopMi2Ow4Pbg32akc4KIVCOm+Y= 127 | github.com/prometheus/client_model v0.2.1-0.20210607210712-147c58e9608a/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= 128 | github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4= 129 | github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= 130 | github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= 131 | github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= 132 | github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= 133 | github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= 134 | github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= 135 | github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= 136 | github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= 137 | github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= 138 | github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= 139 | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 140 | github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= 141 | github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= 142 | github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= 143 | github.com/supranational/blst v0.3.14 h1:xNMoHRJOTwMn63ip6qoWJ2Ymgvj7E2b9jY2FAwY+qRo= 144 | github.com/supranational/blst v0.3.14/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= 145 | github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= 146 | github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= 147 | github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= 148 | github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= 149 | github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= 150 | github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= 151 | golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= 152 | golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= 153 | golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ= 154 | golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE= 155 | golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= 156 | golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= 157 | golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 158 | golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 159 | golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 160 | golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 161 | golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 162 | golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= 163 | golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 164 | golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= 165 | golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= 166 | golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= 167 | golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= 168 | google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= 169 | google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= 170 | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= 171 | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= 172 | gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= 173 | gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= 174 | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= 175 | gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 176 | rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= 177 | rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= 178 | -------------------------------------------------------------------------------- /params_linux_amd64.go: -------------------------------------------------------------------------------- 1 | // Code generated by "go generate"; DO NOT EDIT. 2 | 3 | package solc 4 | 5 | func init() { 6 | solcBaseURL = "https://binaries.soliditylang.org/linux-amd64/" 7 | 8 | solcVersions = map[Version]solcVersion{ 9 | Version0_5_0: {Sha256: [32]byte{0xc1, 0xbb, 0x15, 0xb5, 0x20, 0xf5, 0x07, 0x6a, 0xeb, 0xd7, 0xaa, 0x9e, 0xf4, 0xce, 0x5f, 0xa2, 0x45, 0xb6, 0xf2, 0x10, 0xa9, 0x1c, 0xbd, 0x20, 0x64, 0xb9, 0xe3, 0x83, 0xe6, 0x51, 0x0e, 0x08}, Path: "solc-linux-amd64-v0.5.0+commit.1d4f565a"}, 10 | Version0_5_1: {Sha256: [32]byte{0x62, 0x75, 0xd4, 0x81, 0xf2, 0x31, 0x80, 0xe0, 0x0b, 0x38, 0x99, 0x68, 0x48, 0x53, 0x4d, 0xb7, 0x8b, 0x4f, 0x73, 0xca, 0xac, 0xa1, 0x54, 0x35, 0xad, 0x86, 0x1d, 0xf5, 0x45, 0xbb, 0x71, 0xd0}, Path: "solc-linux-amd64-v0.5.1+commit.c8a2cb62"}, 11 | Version0_5_2: {Sha256: [32]byte{0x87, 0x14, 0x6a, 0x7b, 0x28, 0x4b, 0x1c, 0x90, 0x67, 0xa9, 0x15, 0x93, 0x0c, 0x0c, 0x6a, 0xf7, 0xc9, 0x9f, 0xf9, 0xdd, 0x18, 0x07, 0xe3, 0x68, 0x03, 0x67, 0xfc, 0x03, 0xa5, 0x9e, 0x83, 0xbf}, Path: "solc-linux-amd64-v0.5.2+commit.1df8f40c"}, 12 | Version0_5_3: {Sha256: [32]byte{0xbe, 0x08, 0xeb, 0x95, 0xcb, 0x3a, 0x1d, 0xa5, 0x2e, 0x91, 0x8c, 0xf5, 0x1a, 0x0c, 0x03, 0x97, 0xfb, 0xe7, 0xf0, 0x69, 0x31, 0x45, 0xeb, 0x31, 0x83, 0x5b, 0xf2, 0x92, 0x42, 0x09, 0xf1, 0xe0}, Path: "solc-linux-amd64-v0.5.3+commit.10d17f24"}, 13 | Version0_5_4: {Sha256: [32]byte{0x0f, 0xde, 0x34, 0x7d, 0xb5, 0xe6, 0x32, 0xfc, 0x3a, 0xef, 0x3c, 0xa8, 0xda, 0x74, 0x89, 0x6d, 0x8d, 0xf7, 0xa3, 0x52, 0x87, 0x64, 0x6e, 0x7f, 0xbd, 0xee, 0x82, 0x9f, 0xe2, 0x36, 0x05, 0x4a}, Path: "solc-linux-amd64-v0.5.4+commit.9549d8ff"}, 14 | Version0_5_5: {Sha256: [32]byte{0x71, 0x8c, 0x7c, 0xc5, 0x81, 0x8a, 0x91, 0x79, 0xd3, 0x60, 0xca, 0x54, 0x22, 0xc9, 0xf1, 0x3a, 0x31, 0x2a, 0x2b, 0xaf, 0x88, 0x84, 0xf3, 0xdd, 0x8b, 0xbe, 0x32, 0x87, 0xec, 0xae, 0xf0, 0xc6}, Path: "solc-linux-amd64-v0.5.5+commit.47a71e8f"}, 15 | Version0_5_6: {Sha256: [32]byte{0xf3, 0xc7, 0x0a, 0x4d, 0x71, 0x6b, 0x7b, 0x4e, 0x81, 0x1e, 0xf5, 0x20, 0x4b, 0x3a, 0xe6, 0xa1, 0x64, 0x97, 0xae, 0x70, 0x1a, 0x2b, 0x86, 0x26, 0x0d, 0x1b, 0xde, 0xe7, 0xe4, 0x48, 0x4b, 0x53}, Path: "solc-linux-amd64-v0.5.6+commit.b259423e"}, 16 | Version0_5_7: {Sha256: [32]byte{0x81, 0x0c, 0x52, 0xcf, 0xf2, 0x95, 0x11, 0xf9, 0x5c, 0x44, 0xf9, 0xa1, 0xae, 0x2b, 0x11, 0xc0, 0x45, 0x98, 0xd4, 0x13, 0xd6, 0xff, 0xa3, 0x7b, 0xdb, 0x19, 0x41, 0x59, 0x26, 0xfb, 0x5b, 0x37}, Path: "solc-linux-amd64-v0.5.7+commit.6da8b019"}, 17 | Version0_5_8: {Sha256: [32]byte{0x58, 0xfb, 0xe9, 0xbb, 0xb7, 0x09, 0x27, 0x79, 0x57, 0xfd, 0x12, 0xb9, 0x22, 0x53, 0x0f, 0x03, 0xcf, 0x55, 0x8c, 0xf8, 0x03, 0xb7, 0x23, 0x33, 0xa2, 0xd7, 0x6d, 0x54, 0x75, 0x78, 0x85, 0xd1}, Path: "solc-linux-amd64-v0.5.8+commit.23d335f2"}, 18 | Version0_5_9: {Sha256: [32]byte{0x39, 0x0d, 0x14, 0xac, 0x47, 0xb4, 0xa0, 0x1e, 0x4f, 0x80, 0x4a, 0x57, 0x15, 0x9f, 0xfa, 0x52, 0x6c, 0x23, 0x29, 0xa0, 0xeb, 0x08, 0xb9, 0xe2, 0x0d, 0xee, 0x00, 0x64, 0x9e, 0xfb, 0x34, 0x61}, Path: "solc-linux-amd64-v0.5.9+commit.c68bc34e"}, 19 | Version0_5_10: {Sha256: [32]byte{0x3c, 0x9b, 0x2e, 0x8e, 0xb9, 0x8d, 0x42, 0x94, 0xfc, 0x45, 0x32, 0x6d, 0xaf, 0xcb, 0xcc, 0xb4, 0x6a, 0x70, 0x99, 0x3c, 0x34, 0x6c, 0x7d, 0x3b, 0x55, 0xaa, 0x02, 0x92, 0xb3, 0xca, 0x03, 0x34}, Path: "solc-linux-amd64-v0.5.10+commit.5a6ea5b1"}, 20 | Version0_5_11: {Sha256: [32]byte{0x35, 0x0d, 0x5a, 0xbc, 0x58, 0x62, 0xdc, 0xa4, 0x32, 0x92, 0x42, 0x6b, 0x6d, 0x4e, 0x59, 0x2f, 0x81, 0xf4, 0x0b, 0x02, 0xcd, 0xa8, 0x33, 0xf3, 0x84, 0x06, 0xba, 0x00, 0x47, 0xb6, 0xb9, 0xd0}, Path: "solc-linux-amd64-v0.5.11+commit.22be8592"}, 21 | Version0_5_12: {Sha256: [32]byte{0x70, 0xb6, 0xf0, 0xa3, 0x55, 0x38, 0x5c, 0x5a, 0xea, 0x26, 0xc7, 0x61, 0xb2, 0xe5, 0x8b, 0x32, 0x16, 0xaa, 0x56, 0x4f, 0x41, 0xe4, 0xe1, 0x56, 0x81, 0x3b, 0xe3, 0xc4, 0x7a, 0x66, 0xae, 0x9c}, Path: "solc-linux-amd64-v0.5.12+commit.7709ece9"}, 22 | Version0_5_13: {Sha256: [32]byte{0x5b, 0x62, 0x10, 0x5e, 0x89, 0xc2, 0x29, 0xf5, 0x95, 0x1d, 0x05, 0xf2, 0xb1, 0x9a, 0xf8, 0x11, 0x63, 0x59, 0x9c, 0x7f, 0x0d, 0xec, 0xc0, 0x4a, 0xf8, 0x1e, 0x25, 0x39, 0x96, 0x36, 0x6a, 0xaf}, Path: "solc-linux-amd64-v0.5.13+commit.5b0b510c"}, 23 | Version0_5_14: {Sha256: [32]byte{0x48, 0x45, 0x4e, 0x29, 0x0e, 0xff, 0xd1, 0xb9, 0xb2, 0xaa, 0x86, 0x00, 0x13, 0xde, 0xff, 0x09, 0xa7, 0x9b, 0x4d, 0x74, 0x72, 0x87, 0x5a, 0x07, 0xf3, 0xe7, 0xd5, 0x47, 0xdf, 0x29, 0x7e, 0xcc}, Path: "solc-linux-amd64-v0.5.14+commit.01f1aaa4"}, 24 | Version0_5_15: {Sha256: [32]byte{0xbc, 0x81, 0x6f, 0x21, 0x04, 0xd0, 0xe3, 0x16, 0x17, 0x9b, 0xce, 0x69, 0xaf, 0xcf, 0x24, 0xa4, 0x8b, 0x5c, 0x6c, 0x72, 0x03, 0xcb, 0x72, 0xbe, 0xca, 0xd7, 0xd9, 0xe7, 0xb6, 0x69, 0x90, 0xb4}, Path: "solc-linux-amd64-v0.5.15+commit.6a57276f"}, 25 | Version0_5_16: {Sha256: [32]byte{0xa1, 0x5f, 0x01, 0x70, 0x0e, 0xc7, 0xe0, 0x2f, 0x91, 0xbb, 0xdf, 0xd4, 0xb6, 0xff, 0x44, 0x50, 0xb3, 0xc2, 0xde, 0xca, 0xe1, 0x73, 0xe4, 0xf4, 0x19, 0x10, 0xa3, 0xcf, 0xba, 0xf5, 0xd3, 0xd3}, Path: "solc-linux-amd64-v0.5.16+commit.9c3226ce"}, 26 | Version0_5_17: {Sha256: [32]byte{0xc3, 0x5c, 0xe7, 0xa4, 0xd3, 0xff, 0xa5, 0x74, 0x7c, 0x17, 0x8b, 0x1e, 0x24, 0xc8, 0x54, 0x1b, 0x2e, 0x5d, 0x8a, 0x82, 0xc1, 0xdb, 0x37, 0x19, 0xeb, 0x44, 0x33, 0xa1, 0xf1, 0x9e, 0x16, 0xf3}, Path: "solc-linux-amd64-v0.5.17+commit.d19bba13"}, 27 | Version0_6_0: {Sha256: [32]byte{0x5c, 0x4b, 0x30, 0xda, 0x18, 0xb0, 0xfa, 0x5f, 0x1a, 0xe3, 0x18, 0x31, 0x27, 0xa4, 0xdc, 0xd6, 0x4a, 0x27, 0x9f, 0xcc, 0x15, 0xe1, 0x6a, 0x47, 0x7b, 0x08, 0x41, 0xd5, 0x76, 0x77, 0x02, 0x83}, Path: "solc-linux-amd64-v0.6.0+commit.26b70077"}, 28 | Version0_6_1: {Sha256: [32]byte{0x49, 0x9c, 0x2a, 0xad, 0x13, 0x2f, 0xfd, 0xf7, 0xa5, 0x9c, 0xe8, 0x7d, 0x88, 0xe4, 0xfe, 0xce, 0x2c, 0xcd, 0x63, 0xf5, 0xab, 0x7e, 0x28, 0x3b, 0x1b, 0xe4, 0xc7, 0x22, 0xb0, 0x62, 0x06, 0xcb}, Path: "solc-linux-amd64-v0.6.1+commit.e6f7d5a4"}, 29 | Version0_6_2: {Sha256: [32]byte{0x10, 0x9c, 0xa8, 0xc6, 0xb9, 0x2f, 0x45, 0x48, 0xe7, 0x8c, 0x72, 0xa6, 0x4c, 0x47, 0xc6, 0x14, 0x61, 0x7d, 0x7b, 0x2b, 0x5e, 0x4b, 0x6f, 0x8b, 0x9e, 0x7d, 0x65, 0x4f, 0xc5, 0x18, 0x63, 0x65}, Path: "solc-linux-amd64-v0.6.2+commit.bacdbe57"}, 30 | Version0_6_3: {Sha256: [32]byte{0x60, 0x1f, 0x87, 0x4e, 0x2a, 0x52, 0xc7, 0x59, 0xdd, 0xcc, 0x10, 0x74, 0xcb, 0x75, 0xc1, 0x28, 0x48, 0xe2, 0xce, 0x89, 0x9a, 0x87, 0x46, 0xa4, 0x3e, 0x2a, 0xff, 0xbd, 0x28, 0xa6, 0x55, 0xe1}, Path: "solc-linux-amd64-v0.6.3+commit.8dda9521"}, 31 | Version0_6_4: {Sha256: [32]byte{0x96, 0xdd, 0xd8, 0x1e, 0xa7, 0xd9, 0x4d, 0x6e, 0x7f, 0x11, 0x35, 0xf7, 0xb1, 0x1a, 0xb1, 0xd0, 0x63, 0x5a, 0xd5, 0x58, 0x5e, 0xd9, 0x41, 0x47, 0xf1, 0xfe, 0x39, 0xb1, 0xab, 0x72, 0x66, 0xfb}, Path: "solc-linux-amd64-v0.6.4+commit.1dca32f3"}, 32 | Version0_6_5: {Sha256: [32]byte{0x33, 0x27, 0x6a, 0xdf, 0xf8, 0xf0, 0xe6, 0x20, 0xad, 0xf7, 0x1c, 0x4a, 0xb6, 0x6d, 0x74, 0x8d, 0x06, 0x90, 0xc3, 0x43, 0x60, 0xce, 0x4f, 0x55, 0xe0, 0xd1, 0x8c, 0x77, 0xfa, 0x13, 0x47, 0x6d}, Path: "solc-linux-amd64-v0.6.5+commit.f956cc89"}, 33 | Version0_6_6: {Sha256: [32]byte{0x5d, 0x8c, 0xd4, 0xe0, 0xcc, 0x02, 0xe9, 0x94, 0x64, 0x97, 0xdb, 0x68, 0xc0, 0x6d, 0x56, 0x32, 0x6a, 0x78, 0xff, 0x95, 0xa2, 0x1c, 0x92, 0x65, 0xcf, 0xed, 0xb8, 0x19, 0xa1, 0x0a, 0x53, 0x9d}, Path: "solc-linux-amd64-v0.6.6+commit.6c089d02"}, 34 | Version0_6_7: {Sha256: [32]byte{0x20, 0x26, 0x3a, 0xa1, 0x7c, 0x2e, 0x7c, 0xa8, 0xc1, 0x0e, 0xcd, 0x3d, 0x42, 0x42, 0xdf, 0x61, 0xdb, 0x9d, 0x54, 0x9b, 0xc1, 0xdd, 0xb7, 0x2b, 0x9a, 0x38, 0x7c, 0x0c, 0x11, 0x36, 0xc1, 0xcf}, Path: "solc-linux-amd64-v0.6.7+commit.b8d736ae"}, 35 | Version0_6_8: {Sha256: [32]byte{0x9f, 0x76, 0x16, 0x7c, 0x78, 0x63, 0x5c, 0xd0, 0x48, 0xca, 0x30, 0xe7, 0x5d, 0x9d, 0xad, 0xe5, 0x7e, 0xa6, 0xf0, 0xd0, 0x3b, 0x83, 0x38, 0x4d, 0x64, 0x0d, 0x5d, 0xa3, 0x8e, 0x8c, 0x58, 0x0d}, Path: "solc-linux-amd64-v0.6.8+commit.0bbfe453"}, 36 | Version0_6_9: {Sha256: [32]byte{0xeb, 0x42, 0xbe, 0xf5, 0x78, 0x4a, 0x0d, 0xec, 0x0f, 0x1b, 0x54, 0xc2, 0x60, 0xb3, 0x76, 0xde, 0xb0, 0x49, 0x59, 0x40, 0xbf, 0xd4, 0x74, 0xc4, 0x4b, 0x5b, 0xe3, 0x1c, 0x0b, 0x63, 0x46, 0x03}, Path: "solc-linux-amd64-v0.6.9+commit.3e3065ac"}, 37 | Version0_6_10: {Sha256: [32]byte{0x68, 0xc4, 0x14, 0xba, 0x78, 0x32, 0x55, 0x70, 0xa3, 0x48, 0x17, 0xa8, 0x29, 0xb1, 0xf3, 0xc6, 0x2a, 0x18, 0x98, 0x57, 0x08, 0xa2, 0x50, 0x97, 0x29, 0xb5, 0x0f, 0x79, 0x82, 0x9a, 0x37, 0x4b}, Path: "solc-linux-amd64-v0.6.10+commit.00c0fcaf"}, 38 | Version0_6_11: {Sha256: [32]byte{0x2e, 0x09, 0x1d, 0x5f, 0x13, 0xbe, 0xa0, 0xbc, 0x44, 0x5c, 0x7f, 0x67, 0x4d, 0x5c, 0xf8, 0xc9, 0xe4, 0x2a, 0x3d, 0x4e, 0x35, 0xe1, 0xe5, 0x0f, 0x00, 0xf4, 0xdd, 0x44, 0x89, 0x85, 0x05, 0xaa}, Path: "solc-linux-amd64-v0.6.11+commit.5ef660b1"}, 39 | Version0_6_12: {Sha256: [32]byte{0xf6, 0xcb, 0x51, 0x9b, 0x01, 0xda, 0xbc, 0x61, 0xca, 0xb4, 0xc1, 0x84, 0xa3, 0xdb, 0x11, 0xaa, 0x59, 0x1d, 0x18, 0x15, 0x1e, 0x36, 0x2f, 0xca, 0xe8, 0x50, 0xe4, 0x2c, 0xff, 0xdf, 0xb0, 0x9a}, Path: "solc-linux-amd64-v0.6.12+commit.27d51765"}, 40 | Version0_7_0: {Sha256: [32]byte{0x11, 0x74, 0x54, 0x79, 0x19, 0x03, 0xd3, 0x45, 0x87, 0xb7, 0xb0, 0x76, 0x26, 0xc0, 0x32, 0x53, 0xc6, 0xd4, 0x47, 0x2b, 0x6f, 0x09, 0xf7, 0x2e, 0xe0, 0x07, 0xcf, 0x1f, 0x22, 0x0b, 0x49, 0xe9}, Path: "solc-linux-amd64-v0.7.0+commit.9e61f92b"}, 41 | Version0_7_1: {Sha256: [32]byte{0xc0, 0xc4, 0x94, 0x02, 0xea, 0xf1, 0x83, 0x53, 0xe6, 0xbf, 0xb8, 0xfd, 0xc7, 0x26, 0x27, 0xec, 0xa5, 0xd2, 0xd6, 0x3f, 0xb3, 0x6a, 0x5e, 0xa7, 0x87, 0x11, 0x4d, 0xee, 0x94, 0x97, 0x99, 0xaa}, Path: "solc-linux-amd64-v0.7.1+commit.f4a555be"}, 42 | Version0_7_2: {Sha256: [32]byte{0x75, 0x99, 0x30, 0xb3, 0x96, 0xcd, 0xa0, 0xd1, 0x76, 0x21, 0xdd, 0x6e, 0xca, 0x8a, 0xa1, 0x6a, 0x35, 0x70, 0x14, 0x59, 0x60, 0x25, 0x44, 0x31, 0xe6, 0xc4, 0x2e, 0x81, 0x62, 0x6e, 0x5a, 0x10}, Path: "solc-linux-amd64-v0.7.2+commit.51b20bc0"}, 43 | Version0_7_3: {Sha256: [32]byte{0x2a, 0x17, 0xde, 0xa3, 0xb1, 0x78, 0x5e, 0xac, 0x45, 0xe6, 0xaf, 0x0c, 0xe3, 0x28, 0xaf, 0x68, 0xeb, 0x94, 0x3a, 0x64, 0x63, 0xb3, 0x6e, 0x03, 0xd3, 0x1d, 0x99, 0xd7, 0x65, 0x1a, 0x28, 0xb1}, Path: "solc-linux-amd64-v0.7.3+commit.9bfce1f6"}, 44 | Version0_7_4: {Sha256: [32]byte{0xe0, 0xfa, 0x6a, 0x83, 0x47, 0xa5, 0x2b, 0xc6, 0xec, 0x35, 0x1e, 0x22, 0x53, 0x7e, 0x64, 0x5b, 0xe0, 0x6e, 0xb5, 0x04, 0x18, 0x94, 0x46, 0x0b, 0x1a, 0x91, 0x14, 0xf3, 0x73, 0x2e, 0x9d, 0x07}, Path: "solc-linux-amd64-v0.7.4+commit.3f05b770"}, 45 | Version0_7_5: {Sha256: [32]byte{0x96, 0xfb, 0x22, 0x13, 0x4c, 0x10, 0x93, 0x93, 0x34, 0xc6, 0x2c, 0x8c, 0x0a, 0x66, 0x8b, 0x71, 0x26, 0x96, 0xf8, 0xf8, 0x14, 0x26, 0xe6, 0xfc, 0xf0, 0x42, 0xf0, 0xe7, 0x09, 0xe7, 0xaa, 0x1e}, Path: "solc-linux-amd64-v0.7.5+commit.eb77ed08"}, 46 | Version0_7_6: {Sha256: [32]byte{0xbd, 0x69, 0xea, 0x85, 0x42, 0x7b, 0xf2, 0xf4, 0xda, 0x74, 0xcb, 0x42, 0x6a, 0xd9, 0x51, 0xdd, 0x78, 0xdb, 0x9d, 0xfd, 0xd0, 0x1d, 0x79, 0x12, 0x08, 0xec, 0xcc, 0x2d, 0x49, 0x58, 0xa6, 0xbb}, Path: "solc-linux-amd64-v0.7.6+commit.7338295f"}, 47 | Version0_8_0: {Sha256: [32]byte{0x64, 0x01, 0x63, 0x10, 0xa5, 0x7c, 0xaf, 0x1a, 0xf7, 0x6a, 0x36, 0x10, 0xf1, 0xf9, 0x4c, 0x88, 0x48, 0xc0, 0x4c, 0x96, 0x73, 0xe7, 0xfa, 0x26, 0x84, 0x92, 0xe6, 0x08, 0x91, 0x8a, 0x4b, 0xdc}, Path: "solc-linux-amd64-v0.8.0+commit.c7dfd78e"}, 48 | Version0_8_1: {Sha256: [32]byte{0xda, 0xa7, 0xf6, 0xd6, 0xcc, 0x0a, 0x31, 0x6b, 0xeb, 0x26, 0x07, 0x53, 0x31, 0x83, 0xb6, 0x49, 0x04, 0x79, 0x86, 0x77, 0xb0, 0xcb, 0x99, 0xbd, 0xa0, 0x54, 0x9e, 0xa7, 0x0e, 0x8d, 0xe6, 0x1a}, Path: "solc-linux-amd64-v0.8.1+commit.df193b15"}, 49 | Version0_8_2: {Sha256: [32]byte{0xb6, 0xb9, 0x42, 0x9d, 0x71, 0xd4, 0x39, 0x59, 0x01, 0x79, 0x59, 0x36, 0xa0, 0xaa, 0xee, 0x0b, 0x23, 0x08, 0x2f, 0xca, 0xee, 0x10, 0xd5, 0x63, 0xd8, 0x7b, 0x42, 0xe6, 0x9c, 0x0e, 0x68, 0xc2}, Path: "solc-linux-amd64-v0.8.2+commit.661d1103"}, 50 | Version0_8_3: {Sha256: [32]byte{0xfb, 0x33, 0xaf, 0xd7, 0x61, 0xd0, 0xd7, 0x04, 0x67, 0x1d, 0xad, 0x58, 0x2d, 0x3b, 0x4a, 0x79, 0x0d, 0x4d, 0x85, 0xa6, 0x37, 0x0f, 0xe7, 0x1b, 0x3f, 0x89, 0x35, 0x64, 0x96, 0x81, 0xe2, 0x92}, Path: "solc-linux-amd64-v0.8.3+commit.8d00100c"}, 51 | Version0_8_4: {Sha256: [32]byte{0xf7, 0x11, 0x5c, 0xca, 0xf1, 0x18, 0x99, 0xdc, 0xf3, 0xaa, 0xa8, 0x88, 0x94, 0x9f, 0x86, 0x14, 0x42, 0x1f, 0x2d, 0x10, 0xaf, 0x65, 0xa7, 0x48, 0x70, 0xbc, 0xfd, 0x67, 0x01, 0x0d, 0xa7, 0xf8}, Path: "solc-linux-amd64-v0.8.4+commit.c7e474f2"}, 52 | Version0_8_5: {Sha256: [32]byte{0xbd, 0x78, 0x20, 0x07, 0xa7, 0xd5, 0x05, 0x00, 0xd2, 0x27, 0x03, 0x14, 0x5a, 0xce, 0x6d, 0x44, 0xc9, 0x16, 0xc8, 0x53, 0xcd, 0x0d, 0x0f, 0xcb, 0x2c, 0xae, 0xab, 0x9f, 0xa5, 0xfa, 0x33, 0xe7}, Path: "solc-linux-amd64-v0.8.5+commit.a4f2e591"}, 53 | Version0_8_6: {Sha256: [32]byte{0xab, 0xd5, 0xc4, 0xf3, 0xf2, 0x62, 0xbc, 0x3e, 0xd7, 0x95, 0x1b, 0x96, 0x8c, 0x63, 0xf9, 0x8e, 0x83, 0xf6, 0x6d, 0x9a, 0x5c, 0x35, 0x68, 0xab, 0x30, 0x6e, 0xac, 0x49, 0x25, 0x0a, 0xec, 0x3e}, Path: "solc-linux-amd64-v0.8.6+commit.11564f7e"}, 54 | Version0_8_7: {Sha256: [32]byte{0x00, 0x3d, 0x75, 0x38, 0x3e, 0x45, 0x21, 0x2f, 0x98, 0x12, 0xd0, 0xb6, 0xad, 0xd9, 0x03, 0x29, 0xfd, 0x3b, 0x23, 0x9e, 0x6c, 0x37, 0x8d, 0x28, 0x82, 0xf6, 0x1f, 0x93, 0x45, 0x89, 0x6d, 0x99}, Path: "solc-linux-amd64-v0.8.7+commit.e28d00a7"}, 55 | Version0_8_8: {Sha256: [32]byte{0xe6, 0x77, 0xb1, 0x21, 0x6b, 0x13, 0x6c, 0x61, 0xe3, 0x89, 0x34, 0xa3, 0xde, 0x3a, 0x8e, 0x67, 0xde, 0x3f, 0x73, 0x3d, 0x7a, 0xb2, 0x8f, 0x0f, 0x04, 0x6b, 0xd4, 0xa0, 0x78, 0xb0, 0xcb, 0xb0}, Path: "solc-linux-amd64-v0.8.8+commit.dddeac2f"}, 56 | Version0_8_9: {Sha256: [32]byte{0xf8, 0x51, 0xf1, 0x1f, 0xad, 0x37, 0x49, 0x6b, 0xaa, 0xba, 0xf8, 0xd6, 0xcb, 0x5c, 0x05, 0x7c, 0xa0, 0xd9, 0x75, 0x4f, 0xdd, 0xb7, 0xa3, 0x51, 0xab, 0x58, 0x0d, 0x7f, 0xd7, 0x28, 0xcb, 0x94}, Path: "solc-linux-amd64-v0.8.9+commit.e5eed63a"}, 57 | Version0_8_10: {Sha256: [32]byte{0xc7, 0xef, 0xfa, 0xcf, 0x28, 0xb9, 0xd6, 0x44, 0x95, 0xf8, 0x1b, 0x75, 0x22, 0x8f, 0xbf, 0x42, 0x66, 0xac, 0x0e, 0xc8, 0x7e, 0x8f, 0x1a, 0xdc, 0x48, 0x9d, 0xdd, 0x8a, 0x4d, 0xd0, 0x6d, 0x89}, Path: "solc-linux-amd64-v0.8.10+commit.fc410830"}, 58 | Version0_8_11: {Sha256: [32]byte{0x71, 0x7c, 0x23, 0x9f, 0x3a, 0x1d, 0xc3, 0xa4, 0x83, 0x4c, 0x16, 0x04, 0x6a, 0x0b, 0x4b, 0x9f, 0x46, 0x96, 0x46, 0x65, 0xc8, 0xff, 0xa8, 0x20, 0x51, 0xa6, 0xd0, 0x9f, 0xe7, 0x41, 0xcd, 0x4f}, Path: "solc-linux-amd64-v0.8.11+commit.d7f03943"}, 59 | Version0_8_12: {Sha256: [32]byte{0x55, 0x6c, 0x3e, 0xc4, 0x4f, 0xaf, 0x8f, 0xf6, 0xb6, 0x79, 0x33, 0xfa, 0x8a, 0x8a, 0x40, 0x3a, 0xbe, 0x82, 0xc9, 0x78, 0xd6, 0xe5, 0x81, 0xdb, 0xfe, 0xc4, 0xbd, 0x07, 0x36, 0x0b, 0xfb, 0xf3}, Path: "solc-linux-amd64-v0.8.12+commit.f00d7308"}, 60 | Version0_8_13: {Sha256: [32]byte{0xa8, 0x05, 0xdf, 0xfa, 0x86, 0xcc, 0xd8, 0xed, 0x5c, 0x9c, 0xd1, 0x8f, 0xfc, 0xfc, 0xca, 0x6f, 0xf4, 0x6f, 0x63, 0x52, 0x16, 0xaa, 0x7f, 0xc0, 0x24, 0x65, 0x46, 0xf7, 0xbe, 0x41, 0x3d, 0x62}, Path: "solc-linux-amd64-v0.8.13+commit.abaa5c0e"}, 61 | Version0_8_14: {Sha256: [32]byte{0xd5, 0xb0, 0x27, 0xc8, 0x6c, 0x0f, 0x8f, 0xec, 0xc0, 0x24, 0xd5, 0xd4, 0xf9, 0x5d, 0x8e, 0xa4, 0x8d, 0x8a, 0x94, 0x2d, 0x79, 0x97, 0x03, 0x10, 0xe3, 0x42, 0x37, 0x05, 0x32, 0xb5, 0x02, 0xf0}, Path: "solc-linux-amd64-v0.8.14+commit.80d49f37"}, 62 | Version0_8_15: {Sha256: [32]byte{0x51, 0x89, 0x15, 0x5c, 0xe3, 0x22, 0xd5, 0x7f, 0xb7, 0x5e, 0x85, 0x18, 0xd9, 0xb3, 0x91, 0x39, 0x62, 0x7e, 0xde, 0xa4, 0xfb, 0x25, 0xb5, 0xf0, 0xeb, 0xed, 0x03, 0x91, 0xc5, 0x2e, 0x74, 0xcc}, Path: "solc-linux-amd64-v0.8.15+commit.e14f2714"}, 63 | Version0_8_16: {Sha256: [32]byte{0x16, 0x32, 0x78, 0x6c, 0x6c, 0x1f, 0x85, 0x6a, 0x4a, 0x89, 0x92, 0x32, 0xec, 0x97, 0x5a, 0x12, 0xf3, 0x05, 0x11, 0x8f, 0x43, 0xcc, 0xe9, 0x0e, 0x72, 0x4e, 0xd0, 0xb2, 0xee, 0xbf, 0xee, 0xe1}, Path: "solc-linux-amd64-v0.8.16+commit.07a7930e"}, 64 | Version0_8_17: {Sha256: [32]byte{0x99, 0xf2, 0x07, 0x0b, 0x77, 0x6e, 0x97, 0x14, 0xf1, 0xf7, 0x6c, 0x43, 0xc2, 0x29, 0xcf, 0x99, 0xb8, 0x97, 0x8a, 0x92, 0x93, 0x8e, 0xe8, 0xd2, 0x36, 0x4c, 0x6d, 0xe1, 0x1c, 0x1a, 0x03, 0xd4}, Path: "solc-linux-amd64-v0.8.17+commit.8df45f5f"}, 65 | Version0_8_18: {Sha256: [32]byte{0x95, 0xe6, 0xed, 0x49, 0x49, 0xa6, 0x3a, 0xd8, 0x9a, 0xfb, 0x44, 0x3e, 0xcb, 0xa1, 0xfb, 0x83, 0x02, 0xdd, 0x28, 0x60, 0xee, 0x5e, 0x9b, 0xaa, 0xce, 0x3e, 0x67, 0x4a, 0x0f, 0x48, 0xaa, 0x77}, Path: "solc-linux-amd64-v0.8.18+commit.87f61d96"}, 66 | Version0_8_19: {Sha256: [32]byte{0x7a, 0x5c, 0x1d, 0x3d, 0xc9, 0xa8, 0xeb, 0xa6, 0x2b, 0xb2, 0xec, 0x37, 0x19, 0x2c, 0x91, 0x78, 0xae, 0x5f, 0xe8, 0xa5, 0x4a, 0x56, 0xe5, 0x57, 0x3f, 0xd3, 0xc9, 0xc1, 0x7c, 0xd9, 0xeb, 0x48}, Path: "solc-linux-amd64-v0.8.19+commit.7dd6d404"}, 67 | Version0_8_20: {Sha256: [32]byte{0x04, 0x79, 0xd4, 0x4f, 0xdf, 0x9c, 0x50, 0x1c, 0x25, 0x33, 0x7f, 0xdc, 0x54, 0x04, 0x19, 0xf1, 0x59, 0x3b, 0x88, 0x4a, 0x87, 0xb4, 0x7f, 0x02, 0x3d, 0xa4, 0xf1, 0xc7, 0x00, 0xfd, 0xa7, 0x82}, Path: "solc-linux-amd64-v0.8.20+commit.a1b79de6"}, 68 | Version0_8_21: {Sha256: [32]byte{0xf2, 0x85, 0x7a, 0x89, 0x8b, 0xe1, 0x5c, 0x69, 0xe8, 0xde, 0x55, 0x98, 0xdc, 0xd3, 0xf3, 0xe1, 0x69, 0xe9, 0x49, 0x64, 0xa0, 0xce, 0x9a, 0x0b, 0xbb, 0x1b, 0x11, 0x1f, 0x14, 0x5a, 0x81, 0xdf}, Path: "solc-linux-amd64-v0.8.21+commit.d9974bed"}, 69 | Version0_8_22: {Sha256: [32]byte{0x8b, 0xe0, 0xae, 0xb7, 0x4f, 0xc1, 0xb8, 0x21, 0x32, 0x92, 0xa0, 0x9a, 0x84, 0xcb, 0x52, 0x4a, 0x40, 0x36, 0x02, 0x52, 0x6d, 0xf8, 0x7e, 0xca, 0xd5, 0xf5, 0xcd, 0x2a, 0x7e, 0xa7, 0xd0, 0x89}, Path: "solc-linux-amd64-v0.8.22+commit.4fc1097e"}, 70 | Version0_8_23: {Sha256: [32]byte{0x28, 0x72, 0x6a, 0x45, 0x22, 0x90, 0xc7, 0x0e, 0x19, 0x84, 0xf1, 0x5c, 0x53, 0xad, 0x30, 0x88, 0xe7, 0xd9, 0x87, 0x83, 0xee, 0x30, 0x70, 0xb1, 0x1b, 0x36, 0x64, 0xda, 0x77, 0x41, 0x57, 0x32}, Path: "solc-linux-amd64-v0.8.23+commit.f704f362"}, 71 | Version0_8_24: {Sha256: [32]byte{0xfb, 0x03, 0xa2, 0x9a, 0x51, 0x74, 0x52, 0xb9, 0xf1, 0x2b, 0xcf, 0x45, 0x9e, 0xf3, 0x7d, 0x0a, 0x54, 0x37, 0x65, 0xbb, 0x3b, 0xbc, 0x91, 0x1e, 0x70, 0xa8, 0x7d, 0x6a, 0x37, 0xc3, 0x0d, 0x5f}, Path: "solc-linux-amd64-v0.8.24+commit.e11b9ed9"}, 72 | Version0_8_25: {Sha256: [32]byte{0xc4, 0x2a, 0xad, 0xa7, 0xa5, 0x20, 0x57, 0xdd, 0xbe, 0xd9, 0x3e, 0xc0, 0x11, 0x23, 0x5e, 0x25, 0x6c, 0x56, 0x4c, 0x44, 0x0b, 0x68, 0xdb, 0xaa, 0xc5, 0xae, 0x48, 0x2b, 0xab, 0xbb, 0x3d, 0x6d}, Path: "solc-linux-amd64-v0.8.25+commit.b61c2a91"}, 73 | Version0_8_26: {Sha256: [32]byte{0xd5, 0xf2, 0x34, 0x36, 0xf4, 0x43, 0xed, 0xb8, 0x5d, 0x8e, 0x76, 0x90, 0x6d, 0x12, 0xf0, 0xa8, 0x6c, 0xe0, 0x49, 0x0e, 0x76, 0x63, 0xa9, 0xe6, 0x08, 0xef, 0xeb, 0x7a, 0x93, 0xf1, 0x49, 0xef}, Path: "solc-linux-amd64-v0.8.26+commit.8a97fa7a"}, 74 | Version0_8_27: {Sha256: [32]byte{0xb9, 0x97, 0x7d, 0x50, 0x0c, 0x17, 0xcb, 0xa6, 0xf0, 0x03, 0x2c, 0xa9, 0x39, 0xef, 0x98, 0xc4, 0xde, 0xcf, 0x63, 0x63, 0xf1, 0x9f, 0x38, 0x6d, 0x05, 0xfb, 0x02, 0xf7, 0x08, 0x11, 0x52, 0x64}, Path: "solc-linux-amd64-v0.8.27+commit.40a35a09"}, 75 | Version0_8_28: {Sha256: [32]byte{0x9a, 0x0f, 0xb7, 0xe0, 0xdb, 0x2c, 0x06, 0x41, 0xdb, 0xae, 0x1c, 0x5c, 0xc6, 0x45, 0xdc, 0x68, 0x68, 0x20, 0xc8, 0x3a, 0xf5, 0x16, 0x22, 0x6a, 0xbb, 0x1c, 0x0a, 0x2f, 0x76, 0x63, 0x6f, 0x25}, Path: "solc-linux-amd64-v0.8.28+commit.7893614a"}, 76 | Version0_8_29: {Sha256: [32]byte{0x18, 0xd4, 0x18, 0xa4, 0x0d, 0xc0, 0x4d, 0x17, 0x65, 0x6b, 0x1b, 0x5c, 0x8a, 0x7b, 0x35, 0xcf, 0xba, 0xb8, 0x94, 0x2b, 0x51, 0xf3, 0x8d, 0x00, 0x5d, 0x5b, 0x59, 0xe8, 0xaa, 0x66, 0x37, 0xe0}, Path: "solc-linux-amd64-v0.8.29+commit.ab55807c"}, 77 | Version0_8_30: {Sha256: [32]byte{0xf3, 0xe9, 0x87, 0xdc, 0x6e, 0xce, 0xbd, 0x4b, 0xd3, 0x50, 0xc4, 0x8e, 0xdc, 0xbc, 0x32, 0x0b, 0x46, 0xcf, 0x9e, 0x31, 0x09, 0xbd, 0x3f, 0xc3, 0xd8, 0x8f, 0x1a, 0xca, 0xf4, 0xc4, 0x28, 0xf7}, Path: "solc-linux-amd64-v0.8.30+commit.73712a01"}, 78 | } 79 | 80 | Versions = []Version{ 81 | Version0_5_0, 82 | Version0_5_1, 83 | Version0_5_2, 84 | Version0_5_3, 85 | Version0_5_4, 86 | Version0_5_5, 87 | Version0_5_6, 88 | Version0_5_7, 89 | Version0_5_8, 90 | Version0_5_9, 91 | Version0_5_10, 92 | Version0_5_11, 93 | Version0_5_12, 94 | Version0_5_13, 95 | Version0_5_14, 96 | Version0_5_15, 97 | Version0_5_16, 98 | Version0_5_17, 99 | Version0_6_0, 100 | Version0_6_1, 101 | Version0_6_2, 102 | Version0_6_3, 103 | Version0_6_4, 104 | Version0_6_5, 105 | Version0_6_6, 106 | Version0_6_7, 107 | Version0_6_8, 108 | Version0_6_9, 109 | Version0_6_10, 110 | Version0_6_11, 111 | Version0_6_12, 112 | Version0_7_0, 113 | Version0_7_1, 114 | Version0_7_2, 115 | Version0_7_3, 116 | Version0_7_4, 117 | Version0_7_5, 118 | Version0_7_6, 119 | Version0_8_0, 120 | Version0_8_1, 121 | Version0_8_2, 122 | Version0_8_3, 123 | Version0_8_4, 124 | Version0_8_5, 125 | Version0_8_6, 126 | Version0_8_7, 127 | Version0_8_8, 128 | Version0_8_9, 129 | Version0_8_10, 130 | Version0_8_11, 131 | Version0_8_12, 132 | Version0_8_13, 133 | Version0_8_14, 134 | Version0_8_15, 135 | Version0_8_16, 136 | Version0_8_17, 137 | Version0_8_18, 138 | Version0_8_19, 139 | Version0_8_20, 140 | Version0_8_21, 141 | Version0_8_22, 142 | Version0_8_23, 143 | Version0_8_24, 144 | Version0_8_25, 145 | Version0_8_26, 146 | Version0_8_27, 147 | Version0_8_28, 148 | Version0_8_29, 149 | Version0_8_30, 150 | } 151 | } 152 | 153 | const ( 154 | Version0_5_0 Version = "0.5.0" 155 | Version0_5_1 Version = "0.5.1" 156 | Version0_5_2 Version = "0.5.2" 157 | Version0_5_3 Version = "0.5.3" 158 | Version0_5_4 Version = "0.5.4" 159 | Version0_5_5 Version = "0.5.5" 160 | Version0_5_6 Version = "0.5.6" 161 | Version0_5_7 Version = "0.5.7" 162 | Version0_5_8 Version = "0.5.8" 163 | Version0_5_9 Version = "0.5.9" 164 | Version0_5_10 Version = "0.5.10" 165 | Version0_5_11 Version = "0.5.11" 166 | Version0_5_12 Version = "0.5.12" 167 | Version0_5_13 Version = "0.5.13" 168 | Version0_5_14 Version = "0.5.14" 169 | Version0_5_15 Version = "0.5.15" 170 | Version0_5_16 Version = "0.5.16" 171 | Version0_5_17 Version = "0.5.17" 172 | Version0_6_0 Version = "0.6.0" 173 | Version0_6_1 Version = "0.6.1" 174 | Version0_6_2 Version = "0.6.2" 175 | Version0_6_3 Version = "0.6.3" 176 | Version0_6_4 Version = "0.6.4" 177 | Version0_6_5 Version = "0.6.5" 178 | Version0_6_6 Version = "0.6.6" 179 | Version0_6_7 Version = "0.6.7" 180 | Version0_6_8 Version = "0.6.8" 181 | Version0_6_9 Version = "0.6.9" 182 | Version0_6_10 Version = "0.6.10" 183 | Version0_6_11 Version = "0.6.11" 184 | Version0_6_12 Version = "0.6.12" 185 | Version0_7_0 Version = "0.7.0" 186 | Version0_7_1 Version = "0.7.1" 187 | Version0_7_2 Version = "0.7.2" 188 | Version0_7_3 Version = "0.7.3" 189 | Version0_7_4 Version = "0.7.4" 190 | Version0_7_5 Version = "0.7.5" 191 | Version0_7_6 Version = "0.7.6" 192 | Version0_8_0 Version = "0.8.0" 193 | Version0_8_1 Version = "0.8.1" 194 | Version0_8_2 Version = "0.8.2" 195 | Version0_8_3 Version = "0.8.3" 196 | Version0_8_4 Version = "0.8.4" 197 | Version0_8_5 Version = "0.8.5" 198 | Version0_8_6 Version = "0.8.6" 199 | Version0_8_7 Version = "0.8.7" 200 | Version0_8_8 Version = "0.8.8" 201 | Version0_8_9 Version = "0.8.9" 202 | Version0_8_10 Version = "0.8.10" 203 | Version0_8_11 Version = "0.8.11" 204 | Version0_8_12 Version = "0.8.12" 205 | Version0_8_13 Version = "0.8.13" 206 | Version0_8_14 Version = "0.8.14" 207 | Version0_8_15 Version = "0.8.15" 208 | Version0_8_16 Version = "0.8.16" 209 | Version0_8_17 Version = "0.8.17" 210 | Version0_8_18 Version = "0.8.18" 211 | Version0_8_19 Version = "0.8.19" 212 | Version0_8_20 Version = "0.8.20" 213 | Version0_8_21 Version = "0.8.21" 214 | Version0_8_22 Version = "0.8.22" 215 | Version0_8_23 Version = "0.8.23" 216 | Version0_8_24 Version = "0.8.24" 217 | Version0_8_25 Version = "0.8.25" 218 | Version0_8_26 Version = "0.8.26" 219 | Version0_8_27 Version = "0.8.27" 220 | Version0_8_28 Version = "0.8.28" 221 | Version0_8_29 Version = "0.8.29" 222 | Version0_8_30 Version = "0.8.30" 223 | 224 | // Latest version of solc. 225 | VersionLatest = Version0_8_30 226 | ) 227 | -------------------------------------------------------------------------------- /params_darwin_amd64.go: -------------------------------------------------------------------------------- 1 | // Code generated by "go generate"; DO NOT EDIT. 2 | 3 | package solc 4 | 5 | func init() { 6 | solcBaseURL = "https://binaries.soliditylang.org/macosx-amd64/" 7 | 8 | solcVersions = map[Version]solcVersion{ 9 | Version0_5_0: {Sha256: [32]byte{0x9f, 0xa6, 0x63, 0xfc, 0x42, 0x7e, 0x8e, 0x96, 0x13, 0x81, 0x5a, 0xd6, 0xb8, 0x37, 0x83, 0xb4, 0xe4, 0xcb, 0x10, 0x43, 0x9f, 0x16, 0xca, 0x0d, 0xcb, 0x12, 0xfc, 0x00, 0x2c, 0x45, 0xab, 0x5a}, Path: "solc-macosx-amd64-v0.5.0+commit.1d4f565a"}, 10 | Version0_5_1: {Sha256: [32]byte{0xf2, 0xba, 0xd4, 0x33, 0x86, 0x06, 0x56, 0x84, 0xb4, 0xe1, 0x5b, 0x86, 0xa1, 0x75, 0x41, 0x0f, 0x5d, 0x1e, 0x4d, 0x23, 0x4b, 0x05, 0x2c, 0xba, 0x44, 0xeb, 0x50, 0xf4, 0xc7, 0x4b, 0x02, 0x1f}, Path: "solc-macosx-amd64-v0.5.1+commit.c8a2cb62"}, 11 | Version0_5_2: {Sha256: [32]byte{0x9e, 0x7e, 0xe5, 0x4f, 0x0b, 0xc2, 0x97, 0x8f, 0xa8, 0x73, 0x8b, 0x96, 0x03, 0xd6, 0x36, 0x71, 0x5a, 0x06, 0x9d, 0x84, 0x77, 0x17, 0x78, 0xd6, 0x19, 0x55, 0x77, 0xbb, 0x91, 0xec, 0xb9, 0xc8}, Path: "solc-macosx-amd64-v0.5.2+commit.1df8f40c"}, 12 | Version0_5_3: {Sha256: [32]byte{0x03, 0xa6, 0xcf, 0xa2, 0xd7, 0x4e, 0x57, 0xea, 0x38, 0xee, 0xe8, 0x3c, 0xe9, 0xa3, 0xea, 0x37, 0xa6, 0xe5, 0x09, 0x28, 0xd7, 0xf1, 0x09, 0xe7, 0x4b, 0x37, 0xca, 0xe3, 0x13, 0x19, 0xaf, 0x2b}, Path: "solc-macosx-amd64-v0.5.3+commit.10d17f24"}, 13 | Version0_5_4: {Sha256: [32]byte{0x32, 0xa8, 0xaf, 0xfa, 0x99, 0x6d, 0x05, 0xc5, 0x52, 0x57, 0x31, 0x7c, 0xc7, 0x00, 0xb9, 0xe5, 0xb4, 0x37, 0x7d, 0x94, 0x91, 0x9b, 0x59, 0x05, 0x55, 0x64, 0xeb, 0x0b, 0x5f, 0x94, 0x17, 0x73}, Path: "solc-macosx-amd64-v0.5.4+commit.9549d8ff"}, 14 | Version0_5_5: {Sha256: [32]byte{0x7f, 0xc0, 0x60, 0x0c, 0xc1, 0x50, 0x02, 0x04, 0x02, 0xc9, 0x53, 0x9e, 0xc0, 0xad, 0x58, 0x4e, 0xb9, 0x27, 0x1b, 0x2d, 0x0e, 0x0b, 0xff, 0x9e, 0x3b, 0x4d, 0x4c, 0xa6, 0x72, 0xbe, 0x34, 0x52}, Path: "solc-macosx-amd64-v0.5.5+commit.47a71e8f"}, 15 | Version0_5_6: {Sha256: [32]byte{0x42, 0x8f, 0x9c, 0x08, 0x73, 0xd8, 0x87, 0x40, 0x24, 0x2f, 0x6f, 0xc1, 0x6a, 0x3a, 0xe6, 0xf9, 0x1b, 0x35, 0xf7, 0x3d, 0xdf, 0x76, 0x76, 0xb5, 0xd5, 0xb3, 0x96, 0x87, 0xd9, 0xd9, 0xb7, 0xdc}, Path: "solc-macosx-amd64-v0.5.6+commit.b259423e"}, 16 | Version0_5_7: {Sha256: [32]byte{0xa7, 0xd6, 0xb8, 0xe3, 0xcb, 0x22, 0xd9, 0x07, 0x89, 0xa7, 0x9b, 0x48, 0x4b, 0x72, 0x1f, 0xe0, 0x29, 0x43, 0xf8, 0x9e, 0x9b, 0x7e, 0x99, 0x68, 0x63, 0xed, 0xd2, 0xd4, 0x0b, 0xa7, 0xb5, 0x24}, Path: "solc-macosx-amd64-v0.5.7+commit.6da8b019"}, 17 | Version0_5_8: {Sha256: [32]byte{0x9f, 0x38, 0x38, 0x96, 0xc8, 0x50, 0x6c, 0xd9, 0x6a, 0xc5, 0xef, 0x9c, 0x97, 0xd7, 0xab, 0x1c, 0x38, 0x5f, 0xb5, 0xf4, 0x77, 0x2a, 0x5f, 0x3d, 0x2c, 0xf8, 0x71, 0x5c, 0xae, 0x79, 0x35, 0x54}, Path: "solc-macosx-amd64-v0.5.8+commit.23d335f2"}, 18 | Version0_5_9: {Sha256: [32]byte{0x92, 0xe3, 0x68, 0x82, 0x07, 0xc0, 0xc2, 0xb8, 0x6b, 0xd9, 0xd1, 0x00, 0x88, 0x34, 0x0e, 0x4a, 0x58, 0x5e, 0x29, 0xe3, 0xa8, 0x8d, 0x1c, 0xf7, 0x9c, 0x20, 0x43, 0xf4, 0xf9, 0xf1, 0x21, 0xc4}, Path: "solc-macosx-amd64-v0.5.9+commit.c68bc34e"}, 19 | Version0_5_10: {Sha256: [32]byte{0x50, 0x82, 0xbb, 0x5c, 0x49, 0x2c, 0xa3, 0x5b, 0x68, 0xb0, 0xc3, 0xe2, 0x4d, 0x59, 0x34, 0xb5, 0x6d, 0x3a, 0xdd, 0x83, 0xf1, 0x40, 0x0b, 0xa9, 0x56, 0x54, 0xe8, 0xf1, 0x63, 0xc7, 0x41, 0xff}, Path: "solc-macosx-amd64-v0.5.10+commit.5a6ea5b1"}, 20 | Version0_5_11: {Sha256: [32]byte{0x0e, 0x8e, 0xe8, 0x9d, 0xdb, 0x10, 0x96, 0xb8, 0x1c, 0x34, 0xe1, 0x1b, 0xdb, 0x59, 0x85, 0x82, 0x2e, 0x74, 0x9d, 0x3a, 0x9d, 0xc4, 0xe7, 0x21, 0x8b, 0xa2, 0x47, 0x4a, 0xfa, 0x64, 0x00, 0xcb}, Path: "solc-macosx-amd64-v0.5.11+commit.22be8592"}, 21 | Version0_5_12: {Sha256: [32]byte{0x3d, 0xfb, 0x97, 0xbc, 0x94, 0x14, 0x92, 0xaf, 0xae, 0xa7, 0xf4, 0x04, 0xc3, 0xfb, 0x9c, 0x6f, 0xe2, 0x15, 0xb3, 0x38, 0x6a, 0xa6, 0xe0, 0x37, 0x07, 0x91, 0xb5, 0x71, 0xe4, 0x67, 0x95, 0x48}, Path: "solc-macosx-amd64-v0.5.12+commit.7709ece9"}, 22 | Version0_5_13: {Sha256: [32]byte{0x68, 0xa3, 0x44, 0xd9, 0xde, 0x40, 0xb0, 0xd7, 0x48, 0x20, 0x89, 0xee, 0x77, 0x48, 0xe4, 0x30, 0x88, 0xc5, 0x2e, 0x3b, 0x10, 0x84, 0x80, 0xd8, 0x01, 0xb3, 0x4c, 0x64, 0x02, 0x0b, 0xeb, 0x48}, Path: "solc-macosx-amd64-v0.5.13+commit.5b0b510c"}, 23 | Version0_5_14: {Sha256: [32]byte{0x8a, 0xfa, 0x92, 0x6b, 0x6b, 0xb8, 0xad, 0x49, 0x2f, 0xb2, 0x50, 0x78, 0xb1, 0xdc, 0xe0, 0x9f, 0xd0, 0x5f, 0xaa, 0x57, 0x65, 0xe4, 0xe2, 0xb2, 0x67, 0x2b, 0x3c, 0x99, 0xcf, 0x71, 0xee, 0xb1}, Path: "solc-macosx-amd64-v0.5.14+commit.01f1aaa4"}, 24 | Version0_5_15: {Sha256: [32]byte{0x9e, 0x05, 0x05, 0x1c, 0x3d, 0x42, 0xa4, 0x9c, 0x84, 0x70, 0xcb, 0xed, 0x1f, 0x2b, 0xfa, 0x89, 0xfe, 0x76, 0xe9, 0x30, 0xa9, 0xe5, 0x55, 0x8c, 0x52, 0xce, 0x56, 0x53, 0xcf, 0x79, 0x4e, 0x25}, Path: "solc-macosx-amd64-v0.5.15+commit.6a57276f"}, 25 | Version0_5_16: {Sha256: [32]byte{0x9f, 0x66, 0x24, 0xe4, 0x08, 0x49, 0x71, 0x42, 0xbb, 0xd2, 0x9e, 0xfe, 0x07, 0x44, 0xee, 0x25, 0xe4, 0x45, 0xae, 0xb7, 0xc9, 0x32, 0xbe, 0x40, 0x1c, 0x0b, 0xc3, 0x04, 0x78, 0xa6, 0xbb, 0x75}, Path: "solc-macosx-amd64-v0.5.16+commit.9c3226ce"}, 26 | Version0_5_17: {Sha256: [32]byte{0x35, 0xbe, 0x28, 0xf6, 0x84, 0x88, 0xb7, 0x1f, 0x1d, 0xe6, 0x61, 0x48, 0xf9, 0x15, 0xb9, 0x1d, 0x64, 0xe0, 0x62, 0x90, 0x0e, 0x4f, 0xc1, 0x75, 0xbf, 0x2e, 0xb8, 0xfb, 0x94, 0x88, 0x10, 0xbd}, Path: "solc-macosx-amd64-v0.5.17+commit.d19bba13"}, 27 | Version0_6_0: {Sha256: [32]byte{0x37, 0xbe, 0xed, 0x8c, 0x8b, 0x94, 0x7e, 0xba, 0x64, 0x4c, 0xfd, 0x8c, 0x20, 0x44, 0x6e, 0x1b, 0xa5, 0xd7, 0x40, 0x55, 0xe6, 0x85, 0x6b, 0x64, 0x6d, 0xd6, 0xad, 0x4b, 0xb4, 0x70, 0xd9, 0xae}, Path: "solc-macosx-amd64-v0.6.0+commit.26b70077"}, 28 | Version0_6_1: {Sha256: [32]byte{0xf1, 0x64, 0x9b, 0xfd, 0xb0, 0xe6, 0xe5, 0x3b, 0xe2, 0x75, 0x85, 0x44, 0x83, 0x62, 0x58, 0xcb, 0x4d, 0x02, 0xe0, 0xb3, 0x81, 0xa9, 0xe4, 0x32, 0x16, 0xaa, 0x2b, 0x2f, 0xad, 0x0c, 0x9b, 0x8e}, Path: "solc-macosx-amd64-v0.6.1+commit.e6f7d5a4"}, 29 | Version0_6_2: {Sha256: [32]byte{0x2b, 0xb1, 0x9d, 0x8c, 0xd6, 0x9a, 0x32, 0x85, 0x4a, 0xcc, 0xe1, 0x24, 0x5b, 0x44, 0x92, 0xcf, 0xc5, 0xb5, 0xe7, 0x51, 0xd3, 0x22, 0xd2, 0xc6, 0x55, 0x6d, 0x4a, 0x52, 0x1b, 0xfc, 0xc3, 0xc8}, Path: "solc-macosx-amd64-v0.6.2+commit.bacdbe57"}, 30 | Version0_6_3: {Sha256: [32]byte{0xa0, 0x93, 0x50, 0xd5, 0xa1, 0x82, 0xb3, 0xda, 0x79, 0x9c, 0x20, 0x3d, 0x1d, 0xad, 0xc4, 0xce, 0x0e, 0x6f, 0xe3, 0xb9, 0x6d, 0xc9, 0xee, 0x1c, 0x9d, 0x73, 0xe9, 0xa9, 0xd9, 0x59, 0x2e, 0x2a}, Path: "solc-macosx-amd64-v0.6.3+commit.8dda9521"}, 31 | Version0_6_4: {Sha256: [32]byte{0x08, 0x2f, 0xd4, 0x2c, 0xc9, 0x6c, 0x28, 0x26, 0x24, 0x59, 0x30, 0x6f, 0x28, 0x54, 0xfe, 0x70, 0x49, 0xcc, 0x0d, 0x14, 0x47, 0x3e, 0x12, 0x6b, 0x2d, 0xb6, 0xd3, 0x0b, 0xf0, 0x2f, 0x54, 0xd0}, Path: "solc-macosx-amd64-v0.6.4+commit.1dca32f3"}, 32 | Version0_6_5: {Sha256: [32]byte{0xa8, 0x12, 0x92, 0x54, 0xb5, 0x24, 0x7b, 0xbe, 0x00, 0x3d, 0x6e, 0x54, 0xf3, 0x5c, 0x0b, 0xba, 0x85, 0x36, 0x94, 0x12, 0x67, 0x44, 0x57, 0x72, 0x89, 0xb6, 0xbd, 0xf1, 0xd3, 0x5a, 0x1e, 0x4a}, Path: "solc-macosx-amd64-v0.6.5+commit.f956cc89"}, 33 | Version0_6_6: {Sha256: [32]byte{0x45, 0xc7, 0xf9, 0x56, 0x19, 0x7c, 0xe0, 0x8b, 0x69, 0xf7, 0x93, 0xea, 0x61, 0x0c, 0xf1, 0xee, 0x65, 0xe1, 0x2b, 0x6a, 0x51, 0x8d, 0x61, 0x60, 0xcc, 0x28, 0xc8, 0xee, 0xff, 0x41, 0x51, 0x7c}, Path: "solc-macosx-amd64-v0.6.6+commit.6c089d02"}, 34 | Version0_6_7: {Sha256: [32]byte{0xbb, 0x78, 0xb6, 0xde, 0x3d, 0xf7, 0xdb, 0x61, 0x15, 0xa1, 0x03, 0x33, 0x46, 0xc3, 0xe9, 0xdf, 0x8a, 0x6b, 0x9c, 0x4f, 0xd0, 0x38, 0xcc, 0x12, 0xd6, 0xbd, 0xf1, 0x6a, 0xbd, 0x29, 0xc9, 0x52}, Path: "solc-macosx-amd64-v0.6.7+commit.b8d736ae"}, 35 | Version0_6_8: {Sha256: [32]byte{0x80, 0x1e, 0xfa, 0xa3, 0xd0, 0x28, 0x86, 0x37, 0x02, 0x16, 0x67, 0xc0, 0xd1, 0x16, 0xee, 0x2b, 0x33, 0x9e, 0x62, 0xcf, 0x26, 0x02, 0x7f, 0x8c, 0x16, 0x82, 0x59, 0xe0, 0x80, 0x5e, 0x8b, 0x60}, Path: "solc-macosx-amd64-v0.6.8+commit.0bbfe453"}, 36 | Version0_6_9: {Sha256: [32]byte{0x98, 0xfb, 0xe1, 0x07, 0x55, 0x63, 0x8a, 0xd5, 0xcc, 0xc0, 0x68, 0x38, 0x10, 0xb9, 0x61, 0xa8, 0x03, 0x45, 0x0e, 0x94, 0xb6, 0x42, 0xaf, 0x11, 0x25, 0x93, 0x24, 0x8a, 0x68, 0x5a, 0xa4, 0xdc}, Path: "solc-macosx-amd64-v0.6.9+commit.3e3065ac"}, 37 | Version0_6_10: {Sha256: [32]byte{0x37, 0x73, 0xe6, 0x6c, 0x3e, 0xf1, 0x4e, 0x2e, 0x47, 0xbd, 0xd7, 0xd0, 0x6f, 0x30, 0xf9, 0x52, 0xc1, 0x99, 0x85, 0x6d, 0xf2, 0x40, 0xd1, 0x64, 0xc9, 0x1c, 0x1f, 0x00, 0x80, 0x6f, 0xbb, 0xc7}, Path: "solc-macosx-amd64-v0.6.10+commit.00c0fcaf"}, 38 | Version0_6_11: {Sha256: [32]byte{0xa0, 0xa6, 0x4a, 0xa0, 0x92, 0xa6, 0x16, 0xae, 0x71, 0x45, 0xda, 0x90, 0x8f, 0xc4, 0x27, 0xfc, 0x3c, 0x29, 0x6d, 0x3a, 0xfd, 0xbf, 0xa8, 0xea, 0x34, 0x68, 0xa2, 0x27, 0x22, 0xd5, 0xd0, 0x1c}, Path: "solc-macosx-amd64-v0.6.11+commit.5ef660b1"}, 39 | Version0_6_12: {Sha256: [32]byte{0x05, 0xad, 0x8a, 0xfa, 0x83, 0xdf, 0x3b, 0x51, 0xd3, 0x6f, 0xe9, 0xa8, 0x4e, 0xa4, 0x46, 0x7b, 0x3e, 0xd1, 0x75, 0x85, 0xc9, 0x03, 0x94, 0x69, 0x85, 0xd6, 0xe2, 0xcd, 0x5e, 0x95, 0x68, 0x5a}, Path: "solc-macosx-amd64-v0.6.12+commit.27d51765"}, 40 | Version0_7_0: {Sha256: [32]byte{0x40, 0x55, 0x5d, 0x6e, 0x82, 0x61, 0x04, 0xca, 0xcd, 0x0c, 0x0b, 0x63, 0x7c, 0x5f, 0xb5, 0x73, 0xd5, 0xb6, 0xe2, 0xa6, 0xac, 0x70, 0x11, 0x0d, 0xc0, 0x33, 0x34, 0x66, 0xc0, 0x11, 0x5e, 0x1d}, Path: "solc-macosx-amd64-v0.7.0+commit.9e61f92b"}, 41 | Version0_7_1: {Sha256: [32]byte{0x55, 0xb8, 0x07, 0x2c, 0xc6, 0xac, 0x15, 0x4b, 0xf2, 0x7f, 0x22, 0x17, 0x7a, 0xfe, 0x58, 0xbe, 0x05, 0xf2, 0x8c, 0x11, 0xef, 0x51, 0xfc, 0x4e, 0x66, 0x03, 0x13, 0xd3, 0x04, 0x5a, 0x42, 0x68}, Path: "solc-macosx-amd64-v0.7.1+commit.f4a555be"}, 42 | Version0_7_2: {Sha256: [32]byte{0x55, 0x18, 0x64, 0x1f, 0x6c, 0x4a, 0x28, 0x60, 0x54, 0xf5, 0xc9, 0xf2, 0x91, 0x46, 0x97, 0x0e, 0xf7, 0x2f, 0x2f, 0x34, 0xee, 0x76, 0xed, 0x23, 0xf5, 0xeb, 0x1f, 0x6d, 0x1d, 0xcf, 0xec, 0xdb}, Path: "solc-macosx-amd64-v0.7.2+commit.51b20bc0"}, 43 | Version0_7_3: {Sha256: [32]byte{0xf1, 0x85, 0x10, 0x4e, 0xd5, 0xe2, 0xa9, 0x0b, 0x3c, 0xe8, 0xdf, 0xc7, 0x28, 0x3c, 0x5d, 0x0f, 0xfb, 0xb7, 0x38, 0xd7, 0xc8, 0xda, 0x19, 0xe8, 0x63, 0x5d, 0xd9, 0xfd, 0xa3, 0x4c, 0x33, 0x7a}, Path: "solc-macosx-amd64-v0.7.3+commit.9bfce1f6"}, 44 | Version0_7_4: {Sha256: [32]byte{0xcc, 0xe0, 0x02, 0x68, 0x8c, 0xf1, 0x0f, 0xb0, 0x24, 0x3a, 0x04, 0x25, 0x03, 0xf3, 0xe9, 0x89, 0x6a, 0xa9, 0x91, 0xab, 0x59, 0xb0, 0x8b, 0x57, 0x97, 0x1d, 0x42, 0xd6, 0x8e, 0x99, 0xf8, 0x3d}, Path: "solc-macosx-amd64-v0.7.4+commit.3f05b770"}, 45 | Version0_7_5: {Sha256: [32]byte{0x1c, 0x10, 0x0c, 0xe8, 0x6a, 0x31, 0x67, 0xfd, 0x4c, 0x19, 0x42, 0x90, 0xaa, 0xfe, 0xc0, 0xd3, 0xd9, 0x4f, 0xe8, 0x6c, 0x7a, 0x1a, 0xa0, 0x83, 0x7c, 0x13, 0x46, 0xcc, 0x93, 0xd8, 0xb6, 0xce}, Path: "solc-macosx-amd64-v0.7.5+commit.eb77ed08"}, 46 | Version0_7_6: {Sha256: [32]byte{0xa6, 0xa8, 0xf9, 0xf9, 0x38, 0x8c, 0x5f, 0xcd, 0x92, 0x22, 0x47, 0x4e, 0x00, 0x27, 0x02, 0x42, 0xc8, 0x32, 0xe9, 0x36, 0xb0, 0xf5, 0x25, 0x7c, 0x20, 0x37, 0x4d, 0x27, 0xee, 0x5b, 0xd1, 0xab}, Path: "solc-macosx-amd64-v0.7.6+commit.7338295f"}, 47 | Version0_8_0: {Sha256: [32]byte{0xc7, 0xc3, 0xff, 0x48, 0x4d, 0x2d, 0xd6, 0x93, 0x50, 0xfc, 0x18, 0x2d, 0x44, 0xec, 0xf6, 0x05, 0x7f, 0xf2, 0x88, 0x5b, 0x96, 0xa1, 0xc3, 0x99, 0x0c, 0xa3, 0x62, 0xe9, 0xc8, 0x32, 0x53, 0x35}, Path: "solc-macosx-amd64-v0.8.0+commit.c7dfd78e"}, 48 | Version0_8_1: {Sha256: [32]byte{0x38, 0x50, 0x4e, 0x35, 0x76, 0x32, 0xc1, 0x5a, 0xfe, 0xd6, 0x12, 0xc2, 0x0e, 0xf8, 0x78, 0x99, 0x2c, 0xa8, 0x41, 0x1c, 0xe3, 0xfb, 0x6a, 0xfe, 0xe3, 0x7d, 0xec, 0x6e, 0xbd, 0x22, 0xce, 0x02}, Path: "solc-macosx-amd64-v0.8.1+commit.df193b15"}, 49 | Version0_8_2: {Sha256: [32]byte{0x08, 0x98, 0xc2, 0x3b, 0x0a, 0xc8, 0xcd, 0xab, 0xce, 0xe3, 0xb6, 0x46, 0xb6, 0x76, 0xda, 0x12, 0x05, 0xf4, 0xbe, 0x7c, 0x0b, 0xec, 0x8a, 0x58, 0xde, 0x81, 0xb0, 0x60, 0xc5, 0x9b, 0x4c, 0x1c}, Path: "solc-macosx-amd64-v0.8.2+commit.661d1103"}, 50 | Version0_8_3: {Sha256: [32]byte{0x11, 0x88, 0xf5, 0xc2, 0x4d, 0x33, 0xec, 0x1e, 0xc2, 0xce, 0x81, 0x1a, 0x7a, 0x45, 0xbd, 0xc3, 0xc1, 0x67, 0xf1, 0xba, 0x71, 0xcb, 0xc2, 0x66, 0x40, 0x16, 0x56, 0x4d, 0x2f, 0xdd, 0x46, 0xba}, Path: "solc-macosx-amd64-v0.8.3+commit.8d00100c"}, 51 | Version0_8_4: {Sha256: [32]byte{0x4f, 0x6f, 0x2e, 0x69, 0x42, 0xa0, 0x90, 0x51, 0xbb, 0xbc, 0x85, 0x0d, 0x4f, 0xa9, 0xb0, 0xd9, 0x07, 0x74, 0x96, 0x12, 0xcb, 0x5d, 0xb5, 0x8c, 0xac, 0x0c, 0x87, 0x74, 0x54, 0x35, 0x07, 0x0f}, Path: "solc-macosx-amd64-v0.8.4+commit.c7e474f2"}, 52 | Version0_8_5: {Sha256: [32]byte{0x34, 0x21, 0xee, 0x67, 0xa2, 0x6e, 0xf4, 0xa7, 0x20, 0xe7, 0x95, 0x31, 0xff, 0xd9, 0xb9, 0x6d, 0xee, 0xc8, 0x9d, 0xef, 0xbc, 0xd7, 0x0b, 0xb4, 0xa3, 0x3e, 0x96, 0x8b, 0x12, 0xdd, 0xb9, 0x38}, Path: "solc-macosx-amd64-v0.8.5+commit.a4f2e591"}, 53 | Version0_8_6: {Sha256: [32]byte{0x86, 0xee, 0x99, 0xf6, 0x4f, 0xc7, 0xe3, 0x6b, 0xfa, 0x04, 0x61, 0x69, 0xb6, 0xa4, 0xd4, 0xc1, 0x0e, 0xb3, 0x50, 0x17, 0xed, 0x11, 0xe0, 0xc9, 0x70, 0xf0, 0x12, 0x23, 0xb2, 0xf5, 0xdb, 0x36}, Path: "solc-macosx-amd64-v0.8.6+commit.11564f7e"}, 54 | Version0_8_7: {Sha256: [32]byte{0xcc, 0x5c, 0x66, 0x3d, 0x1f, 0xe1, 0x7d, 0x4e, 0xb4, 0xac, 0xa0, 0x92, 0x53, 0x78, 0x7a, 0xc8, 0x6b, 0x87, 0x85, 0x23, 0x5f, 0xca, 0x71, 0xd9, 0x20, 0x05, 0x69, 0xe6, 0x62, 0x67, 0x79, 0x90}, Path: "solc-macosx-amd64-v0.8.7+commit.e28d00a7"}, 55 | Version0_8_8: {Sha256: [32]byte{0x14, 0x22, 0xe1, 0x04, 0x54, 0x25, 0x1d, 0x56, 0xfe, 0xf6, 0x29, 0x40, 0xfb, 0x2e, 0x20, 0x9a, 0x6f, 0x46, 0x7a, 0xe3, 0x5f, 0x73, 0xbd, 0xce, 0x58, 0x0b, 0xc0, 0xba, 0xd3, 0x58, 0x51, 0xdd}, Path: "solc-macosx-amd64-v0.8.8+commit.dddeac2f"}, 56 | Version0_8_9: {Sha256: [32]byte{0xd6, 0x19, 0xd4, 0xf5, 0xd8, 0xfd, 0x98, 0x8b, 0xc6, 0x32, 0x62, 0x40, 0x7e, 0x74, 0x9e, 0x90, 0x5c, 0xcc, 0x8d, 0x8a, 0xb1, 0xcc, 0xf0, 0x28, 0x0d, 0xa1, 0xd1, 0x2b, 0x91, 0x88, 0x94, 0xce}, Path: "solc-macosx-amd64-v0.8.9+commit.e5eed63a"}, 57 | Version0_8_10: {Sha256: [32]byte{0xa7, 0x9f, 0xff, 0x23, 0xae, 0xb3, 0x5b, 0xe8, 0x56, 0xe4, 0x46, 0x82, 0x7c, 0x44, 0xa9, 0xcf, 0xa4, 0xc3, 0x82, 0xf2, 0x9b, 0xab, 0xd2, 0xf6, 0xa4, 0x05, 0xef, 0x73, 0xd1, 0xe2, 0xa4, 0xcc}, Path: "solc-macosx-amd64-v0.8.10+commit.fc410830"}, 58 | Version0_8_11: {Sha256: [32]byte{0x10, 0xcd, 0xcc, 0x8d, 0x8e, 0xa4, 0xdd, 0xe9, 0xfd, 0x8b, 0x95, 0x3b, 0x95, 0x88, 0x5d, 0xc7, 0x37, 0xf2, 0x4b, 0x8a, 0x31, 0xfe, 0xa6, 0x5f, 0x47, 0x15, 0xff, 0xd0, 0x07, 0xb8, 0x02, 0x81}, Path: "solc-macosx-amd64-v0.8.11+commit.d7f03943"}, 59 | Version0_8_12: {Sha256: [32]byte{0x95, 0x73, 0x8a, 0x27, 0x90, 0x9a, 0x13, 0x50, 0x23, 0x85, 0xe9, 0xfe, 0x8f, 0x8f, 0x3d, 0x8a, 0x87, 0x3d, 0x2f, 0xaf, 0x5d, 0x06, 0xff, 0x61, 0x7b, 0xc2, 0xfe, 0x3e, 0xdb, 0x8c, 0x4b, 0xf9}, Path: "solc-macosx-amd64-v0.8.12+commit.f00d7308"}, 60 | Version0_8_13: {Sha256: [32]byte{0x14, 0xd4, 0xef, 0x01, 0x3e, 0xa8, 0x2a, 0xd9, 0x5e, 0x91, 0xfd, 0x94, 0x9b, 0x7f, 0xa7, 0xb7, 0x82, 0x71, 0xa4, 0x83, 0xff, 0x1a, 0x79, 0xc4, 0x3d, 0x6c, 0xc5, 0x8b, 0x82, 0x6f, 0x5b, 0xea}, Path: "solc-macosx-amd64-v0.8.13+commit.abaa5c0e"}, 61 | Version0_8_14: {Sha256: [32]byte{0xb3, 0xd1, 0x9a, 0xb4, 0x76, 0x57, 0xaf, 0x37, 0xbe, 0x4c, 0x55, 0x1f, 0x83, 0x49, 0x42, 0x48, 0xe9, 0x9d, 0x7b, 0xa1, 0x03, 0xb6, 0x07, 0x2e, 0x8c, 0x08, 0xdb, 0xb6, 0x27, 0x08, 0xe2, 0xb0}, Path: "solc-macosx-amd64-v0.8.14+commit.80d49f37"}, 62 | Version0_8_15: {Sha256: [32]byte{0x00, 0x65, 0x6d, 0xc7, 0x32, 0x24, 0xe4, 0xc0, 0x70, 0x29, 0x40, 0xdf, 0x10, 0x31, 0x0b, 0xdc, 0x02, 0x4b, 0x60, 0xf4, 0xa7, 0x59, 0x8e, 0x77, 0x4d, 0x30, 0x5b, 0xc3, 0xb9, 0x4f, 0x7d, 0x79}, Path: "solc-macosx-amd64-v0.8.15+commit.e14f2714"}, 63 | Version0_8_16: {Sha256: [32]byte{0x7d, 0x47, 0x1c, 0xb9, 0xba, 0xe9, 0xa7, 0xf2, 0x9c, 0x7e, 0xbf, 0x40, 0x2f, 0x7e, 0x16, 0xfa, 0x82, 0x26, 0xb1, 0x7b, 0xa9, 0xab, 0x68, 0xa8, 0x8c, 0xe1, 0x07, 0x11, 0x44, 0x79, 0xdc, 0x4d}, Path: "solc-macosx-amd64-v0.8.16+commit.07a7930e"}, 64 | Version0_8_17: {Sha256: [32]byte{0xe4, 0x0e, 0xef, 0x83, 0xc2, 0x4d, 0x4c, 0x42, 0xb4, 0x7f, 0x46, 0x1b, 0x01, 0x74, 0x8a, 0x6c, 0xa8, 0x9f, 0x1e, 0x09, 0xe7, 0x78, 0x99, 0x5b, 0x71, 0xde, 0xbf, 0xa0, 0xde, 0x99, 0xe1, 0x2a}, Path: "solc-macosx-amd64-v0.8.17+commit.8df45f5f"}, 65 | Version0_8_18: {Sha256: [32]byte{0x8f, 0x15, 0x28, 0x7c, 0x79, 0x9a, 0xd2, 0xb3, 0x3f, 0x24, 0x1d, 0x12, 0x52, 0x22, 0x6a, 0xbd, 0xa5, 0xd4, 0xbc, 0x3e, 0xf6, 0xbe, 0x40, 0xb9, 0x46, 0x92, 0x31, 0x78, 0xfc, 0x57, 0xd3, 0x97}, Path: "solc-macosx-amd64-v0.8.18+commit.87f61d96"}, 66 | Version0_8_19: {Sha256: [32]byte{0x38, 0xc8, 0x52, 0x3a, 0xb6, 0x7e, 0x0b, 0x3e, 0x21, 0xc4, 0x81, 0x89, 0xd6, 0xbf, 0xb9, 0x9a, 0xd6, 0x87, 0x9b, 0x9c, 0xe0, 0x2e, 0x0d, 0x80, 0x2e, 0xc8, 0xbe, 0x59, 0x8b, 0xb2, 0x62, 0x2d}, Path: "solc-macosx-amd64-v0.8.19+commit.7dd6d404"}, 67 | Version0_8_20: {Sha256: [32]byte{0xfc, 0x32, 0x99, 0x45, 0xe0, 0x06, 0x8e, 0x4e, 0x95, 0x5d, 0x0a, 0x7b, 0x58, 0x37, 0x76, 0xdc, 0x8d, 0x25, 0xe7, 0x2a, 0xb6, 0x57, 0xa0, 0x44, 0x61, 0x8a, 0x7c, 0xe7, 0xdd, 0x05, 0x19, 0xaa}, Path: "solc-macosx-amd64-v0.8.20+commit.a1b79de6"}, 68 | Version0_8_21: {Sha256: [32]byte{0x19, 0xd0, 0x65, 0x74, 0x9f, 0xb0, 0x8c, 0xbf, 0xf4, 0xf7, 0xb4, 0x52, 0x84, 0xac, 0x55, 0x85, 0x30, 0x63, 0x86, 0x5f, 0x6a, 0xe8, 0x62, 0x1e, 0x4d, 0xef, 0xa5, 0xd9, 0x38, 0xb9, 0xa5, 0x02}, Path: "solc-macosx-amd64-v0.8.21+commit.d9974bed"}, 69 | Version0_8_22: {Sha256: [32]byte{0xc8, 0xd3, 0xb7, 0x80, 0x3c, 0x0e, 0xb2, 0xc3, 0xbd, 0xd3, 0x4b, 0x2c, 0x3b, 0x97, 0x06, 0xe9, 0xd8, 0xc8, 0x1b, 0x88, 0x29, 0x25, 0x0e, 0x49, 0x24, 0x5d, 0xac, 0xb9, 0x84, 0xa6, 0x2e, 0x05}, Path: "solc-macosx-amd64-v0.8.22+commit.4fc1097e"}, 70 | Version0_8_23: {Sha256: [32]byte{0xe0, 0x9a, 0x42, 0x98, 0x0e, 0x44, 0x64, 0x4b, 0xe3, 0x3a, 0x84, 0x55, 0xc8, 0x7d, 0x09, 0x5a, 0x4f, 0x00, 0x28, 0xe4, 0x1a, 0x7d, 0xde, 0x11, 0x37, 0xf5, 0xd9, 0xa7, 0x60, 0x5a, 0x2d, 0x62}, Path: "solc-macosx-amd64-v0.8.23+commit.f704f362"}, 71 | Version0_8_24: {Sha256: [32]byte{0xcc, 0x2d, 0x44, 0xc7, 0x06, 0x90, 0x5c, 0xcc, 0x38, 0x2f, 0x48, 0x46, 0x25, 0xdf, 0xf6, 0x1d, 0x74, 0x1e, 0x0c, 0x24, 0x23, 0x2d, 0x22, 0x6f, 0x13, 0x9a, 0x68, 0x35, 0xfc, 0x64, 0x4f, 0x3f}, Path: "solc-macosx-amd64-v0.8.24+commit.e11b9ed9"}, 72 | Version0_8_25: {Sha256: [32]byte{0xcc, 0x3f, 0x94, 0xa7, 0x0a, 0xc6, 0x81, 0xb0, 0x30, 0x40, 0x84, 0xac, 0xc1, 0x98, 0x0a, 0xab, 0xe2, 0xa1, 0xbb, 0x32, 0x40, 0xd4, 0x4c, 0xe7, 0x6a, 0x8d, 0xf0, 0xe1, 0xe7, 0x7a, 0x21, 0x10}, Path: "solc-macosx-amd64-v0.8.25+commit.b61c2a91"}, 73 | Version0_8_26: {Sha256: [32]byte{0x0f, 0xf0, 0x16, 0xae, 0xf2, 0x39, 0x6b, 0x12, 0xd1, 0xfc, 0x65, 0x42, 0x9d, 0x8e, 0xa6, 0xcf, 0x53, 0xc2, 0xee, 0x4b, 0x04, 0x1b, 0xb8, 0x92, 0x56, 0x44, 0x61, 0x5e, 0xe1, 0xc3, 0x0a, 0xb9}, Path: "solc-macosx-amd64-v0.8.26+commit.8a97fa7a"}, 74 | Version0_8_27: {Sha256: [32]byte{0x8c, 0x40, 0x6f, 0xa5, 0xca, 0xb9, 0xbd, 0x0a, 0x17, 0x5d, 0xa0, 0x2c, 0x65, 0x20, 0x72, 0xf8, 0x14, 0xc3, 0xd0, 0x62, 0x05, 0xa2, 0xfd, 0x6d, 0x92, 0xbc, 0x15, 0x25, 0x99, 0xa6, 0xaa, 0xbb}, Path: "solc-macosx-amd64-v0.8.27+commit.40a35a09"}, 75 | Version0_8_28: {Sha256: [32]byte{0x81, 0x51, 0x5b, 0x0e, 0x53, 0xde, 0xaa, 0x26, 0x6d, 0x54, 0x95, 0x45, 0xcc, 0xaa, 0xc0, 0xa5, 0xa9, 0x6e, 0x6d, 0x4e, 0x82, 0x01, 0xc7, 0x7f, 0x67, 0x3b, 0x2c, 0x71, 0x09, 0x76, 0xd9, 0xea}, Path: "solc-macosx-amd64-v0.8.28+commit.7893614a"}, 76 | Version0_8_29: {Sha256: [32]byte{0x66, 0xfa, 0xbd, 0xd1, 0x7c, 0x8c, 0x00, 0x91, 0x31, 0x19, 0x97, 0xec, 0x7d, 0x17, 0xb4, 0xd9, 0x2e, 0x1b, 0x7b, 0x2c, 0x2d, 0x21, 0x3d, 0xc1, 0x4e, 0x4f, 0xf2, 0x8c, 0x3d, 0xe8, 0x64, 0xd1}, Path: "solc-macosx-amd64-v0.8.29+commit.ab55807c"}, 77 | Version0_8_30: {Sha256: [32]byte{0x73, 0x8d, 0xcd, 0xc6, 0xaf, 0xdd, 0xeb, 0x50, 0x5e, 0xe4, 0xe4, 0xef, 0x24, 0xf1, 0xc1, 0xfd, 0xba, 0x2b, 0x8c, 0x92, 0x4e, 0x61, 0x4c, 0xbb, 0xf5, 0x80, 0x1a, 0x5b, 0x06, 0x2d, 0xd6, 0x83}, Path: "solc-macosx-amd64-v0.8.30+commit.73712a01"}, 78 | } 79 | 80 | Versions = []Version{ 81 | Version0_5_0, 82 | Version0_5_1, 83 | Version0_5_2, 84 | Version0_5_3, 85 | Version0_5_4, 86 | Version0_5_5, 87 | Version0_5_6, 88 | Version0_5_7, 89 | Version0_5_8, 90 | Version0_5_9, 91 | Version0_5_10, 92 | Version0_5_11, 93 | Version0_5_12, 94 | Version0_5_13, 95 | Version0_5_14, 96 | Version0_5_15, 97 | Version0_5_16, 98 | Version0_5_17, 99 | Version0_6_0, 100 | Version0_6_1, 101 | Version0_6_2, 102 | Version0_6_3, 103 | Version0_6_4, 104 | Version0_6_5, 105 | Version0_6_6, 106 | Version0_6_7, 107 | Version0_6_8, 108 | Version0_6_9, 109 | Version0_6_10, 110 | Version0_6_11, 111 | Version0_6_12, 112 | Version0_7_0, 113 | Version0_7_1, 114 | Version0_7_2, 115 | Version0_7_3, 116 | Version0_7_4, 117 | Version0_7_5, 118 | Version0_7_6, 119 | Version0_8_0, 120 | Version0_8_1, 121 | Version0_8_2, 122 | Version0_8_3, 123 | Version0_8_4, 124 | Version0_8_5, 125 | Version0_8_6, 126 | Version0_8_7, 127 | Version0_8_8, 128 | Version0_8_9, 129 | Version0_8_10, 130 | Version0_8_11, 131 | Version0_8_12, 132 | Version0_8_13, 133 | Version0_8_14, 134 | Version0_8_15, 135 | Version0_8_16, 136 | Version0_8_17, 137 | Version0_8_18, 138 | Version0_8_19, 139 | Version0_8_20, 140 | Version0_8_21, 141 | Version0_8_22, 142 | Version0_8_23, 143 | Version0_8_24, 144 | Version0_8_25, 145 | Version0_8_26, 146 | Version0_8_27, 147 | Version0_8_28, 148 | Version0_8_29, 149 | Version0_8_30, 150 | } 151 | } 152 | 153 | const ( 154 | Version0_5_0 Version = "0.5.0" 155 | Version0_5_1 Version = "0.5.1" 156 | Version0_5_2 Version = "0.5.2" 157 | Version0_5_3 Version = "0.5.3" 158 | Version0_5_4 Version = "0.5.4" 159 | Version0_5_5 Version = "0.5.5" 160 | Version0_5_6 Version = "0.5.6" 161 | Version0_5_7 Version = "0.5.7" 162 | Version0_5_8 Version = "0.5.8" 163 | Version0_5_9 Version = "0.5.9" 164 | Version0_5_10 Version = "0.5.10" 165 | Version0_5_11 Version = "0.5.11" 166 | Version0_5_12 Version = "0.5.12" 167 | Version0_5_13 Version = "0.5.13" 168 | Version0_5_14 Version = "0.5.14" 169 | Version0_5_15 Version = "0.5.15" 170 | Version0_5_16 Version = "0.5.16" 171 | Version0_5_17 Version = "0.5.17" 172 | Version0_6_0 Version = "0.6.0" 173 | Version0_6_1 Version = "0.6.1" 174 | Version0_6_2 Version = "0.6.2" 175 | Version0_6_3 Version = "0.6.3" 176 | Version0_6_4 Version = "0.6.4" 177 | Version0_6_5 Version = "0.6.5" 178 | Version0_6_6 Version = "0.6.6" 179 | Version0_6_7 Version = "0.6.7" 180 | Version0_6_8 Version = "0.6.8" 181 | Version0_6_9 Version = "0.6.9" 182 | Version0_6_10 Version = "0.6.10" 183 | Version0_6_11 Version = "0.6.11" 184 | Version0_6_12 Version = "0.6.12" 185 | Version0_7_0 Version = "0.7.0" 186 | Version0_7_1 Version = "0.7.1" 187 | Version0_7_2 Version = "0.7.2" 188 | Version0_7_3 Version = "0.7.3" 189 | Version0_7_4 Version = "0.7.4" 190 | Version0_7_5 Version = "0.7.5" 191 | Version0_7_6 Version = "0.7.6" 192 | Version0_8_0 Version = "0.8.0" 193 | Version0_8_1 Version = "0.8.1" 194 | Version0_8_2 Version = "0.8.2" 195 | Version0_8_3 Version = "0.8.3" 196 | Version0_8_4 Version = "0.8.4" 197 | Version0_8_5 Version = "0.8.5" 198 | Version0_8_6 Version = "0.8.6" 199 | Version0_8_7 Version = "0.8.7" 200 | Version0_8_8 Version = "0.8.8" 201 | Version0_8_9 Version = "0.8.9" 202 | Version0_8_10 Version = "0.8.10" 203 | Version0_8_11 Version = "0.8.11" 204 | Version0_8_12 Version = "0.8.12" 205 | Version0_8_13 Version = "0.8.13" 206 | Version0_8_14 Version = "0.8.14" 207 | Version0_8_15 Version = "0.8.15" 208 | Version0_8_16 Version = "0.8.16" 209 | Version0_8_17 Version = "0.8.17" 210 | Version0_8_18 Version = "0.8.18" 211 | Version0_8_19 Version = "0.8.19" 212 | Version0_8_20 Version = "0.8.20" 213 | Version0_8_21 Version = "0.8.21" 214 | Version0_8_22 Version = "0.8.22" 215 | Version0_8_23 Version = "0.8.23" 216 | Version0_8_24 Version = "0.8.24" 217 | Version0_8_25 Version = "0.8.25" 218 | Version0_8_26 Version = "0.8.26" 219 | Version0_8_27 Version = "0.8.27" 220 | Version0_8_28 Version = "0.8.28" 221 | Version0_8_29 Version = "0.8.29" 222 | Version0_8_30 Version = "0.8.30" 223 | 224 | // Latest version of solc. 225 | VersionLatest = Version0_8_30 226 | ) 227 | -------------------------------------------------------------------------------- /internal/console/args.go: -------------------------------------------------------------------------------- 1 | // Code generated by go generate; DO NOT EDIT. 2 | package console 3 | 4 | import "github.com/ethereum/go-ethereum/accounts/abi" 5 | 6 | var Args = map[[4]byte]abi.Arguments{ 7 | {0x51, 0x97, 0x3e, 0xc9}: {}, 8 | {0x41, 0x30, 0x4f, 0xac}: {argString}, 9 | {0xf5, 0xb1, 0xbb, 0xa9}: {argUint}, 10 | {0x4e, 0x0c, 0x1d, 0x1d}: {argInt}, 11 | {0x32, 0x45, 0x8e, 0xed}: {argBool}, 12 | {0x2c, 0x2e, 0xcb, 0xc2}: {argAddress}, 13 | {0x0b, 0xe7, 0x7f, 0x56}: {argBytes}, 14 | {0x6e, 0x18, 0xa1, 0x28}: {argBytes1}, 15 | {0xe9, 0xb6, 0x22, 0x96}: {argBytes2}, 16 | {0x2d, 0x83, 0x49, 0x26}: {argBytes3}, 17 | {0xe0, 0x5f, 0x48, 0xd1}: {argBytes4}, 18 | {0xa6, 0x84, 0x80, 0x8d}: {argBytes5}, 19 | {0xae, 0x84, 0xa5, 0x91}: {argBytes6}, 20 | {0x4e, 0xd5, 0x7e, 0x28}: {argBytes7}, 21 | {0x4f, 0x84, 0x25, 0x2e}: {argBytes8}, 22 | {0x90, 0xbd, 0x8c, 0xd0}: {argBytes9}, 23 | {0x01, 0x3d, 0x17, 0x8b}: {argBytes10}, 24 | {0x04, 0x00, 0x4a, 0x2e}: {argBytes11}, 25 | {0x86, 0xa0, 0x6a, 0xbd}: {argBytes12}, 26 | {0x94, 0x52, 0x9e, 0x34}: {argBytes13}, 27 | {0x92, 0x66, 0xf0, 0x7f}: {argBytes14}, 28 | {0xda, 0x95, 0x74, 0xe0}: {argBytes15}, 29 | {0x66, 0x5c, 0x61, 0x04}: {argBytes16}, 30 | {0x33, 0x9f, 0x67, 0x3a}: {argBytes17}, 31 | {0xc4, 0xd2, 0x3d, 0x9a}: {argBytes18}, 32 | {0x5e, 0x6b, 0x5a, 0x33}: {argBytes19}, 33 | {0x51, 0x88, 0xe3, 0xe9}: {argBytes20}, 34 | {0xe9, 0xda, 0x35, 0x60}: {argBytes21}, 35 | {0xd5, 0xfa, 0xe8, 0x9c}: {argBytes22}, 36 | {0xab, 0xa1, 0xcf, 0x0d}: {argBytes23}, 37 | {0xf1, 0xb3, 0x5b, 0x34}: {argBytes24}, 38 | {0x0b, 0x84, 0xbc, 0x58}: {argBytes25}, 39 | {0xf8, 0xb1, 0x49, 0xf1}: {argBytes26}, 40 | {0x3a, 0x37, 0x57, 0xdd}: {argBytes27}, 41 | {0xc8, 0x2a, 0xea, 0xee}: {argBytes28}, 42 | {0x4b, 0x69, 0xc3, 0xd5}: {argBytes29}, 43 | {0xee, 0x12, 0xc4, 0xed}: {argBytes30}, 44 | {0xc2, 0x85, 0x4d, 0x92}: {argBytes31}, 45 | {0x27, 0xb7, 0xcf, 0x85}: {argBytes32}, 46 | {0x4b, 0x5c, 0x42, 0x77}: {argString, argString}, 47 | {0x97, 0x10, 0xa9, 0xd0}: {argString, argUint}, 48 | {0x31, 0x9a, 0xf3, 0x33}: {argString, argAddress}, 49 | {0xc3, 0xb5, 0x56, 0x35}: {argString, argBool}, 50 | {0x0f, 0xa3, 0xf3, 0x45}: {argUint, argString}, 51 | {0x6c, 0x0f, 0x69, 0x80}: {argUint, argUint}, 52 | {0x58, 0xeb, 0x86, 0x0c}: {argUint, argAddress}, 53 | {0x1e, 0x6d, 0xd4, 0xec}: {argUint, argBool}, 54 | {0x75, 0x9f, 0x86, 0xbb}: {argAddress, argString}, 55 | {0x22, 0x43, 0xcf, 0xa3}: {argAddress, argUint}, 56 | {0xda, 0xf0, 0xd4, 0xaa}: {argAddress, argAddress}, 57 | {0x75, 0xb6, 0x05, 0xd3}: {argAddress, argBool}, 58 | {0x8f, 0xea, 0xc5, 0x25}: {argBool, argString}, 59 | {0x36, 0x4b, 0x6a, 0x92}: {argBool, argUint}, 60 | {0x85, 0x3c, 0x48, 0x49}: {argBool, argAddress}, 61 | {0x2a, 0x11, 0x0e, 0x83}: {argBool, argBool}, 62 | {0x2c, 0xed, 0x7c, 0xef}: {argString, argString, argString}, 63 | {0xf3, 0x62, 0xca, 0x59}: {argString, argString, argUint}, 64 | {0x95, 0xed, 0x01, 0x95}: {argString, argString, argAddress}, 65 | {0xb0, 0xe0, 0xf9, 0xb5}: {argString, argString, argBool}, 66 | {0xa3, 0xf5, 0xc7, 0x39}: {argString, argUint, argString}, 67 | {0x96, 0x9c, 0xdd, 0x03}: {argString, argUint, argUint}, 68 | {0xe3, 0x84, 0x9f, 0x79}: {argString, argUint, argAddress}, 69 | {0xf1, 0x02, 0xee, 0x05}: {argString, argUint, argBool}, 70 | {0xe0, 0xe9, 0xad, 0x4f}: {argString, argAddress, argString}, 71 | {0x07, 0xc8, 0x12, 0x17}: {argString, argAddress, argUint}, 72 | {0xfc, 0xec, 0x75, 0xe0}: {argString, argAddress, argAddress}, 73 | {0xc9, 0x1d, 0x5e, 0xd4}: {argString, argAddress, argBool}, 74 | {0xe2, 0x98, 0xf4, 0x7d}: {argString, argBool, argString}, 75 | {0x29, 0x1b, 0xb9, 0xd0}: {argString, argBool, argUint}, 76 | {0x93, 0x2b, 0xbb, 0x38}: {argString, argBool, argAddress}, 77 | {0x85, 0x0b, 0x7a, 0xd6}: {argString, argBool, argBool}, 78 | {0x3f, 0x57, 0xc2, 0x95}: {argUint, argString, argString}, 79 | {0x5b, 0x6d, 0xe8, 0x3f}: {argUint, argString, argUint}, 80 | {0x1f, 0x90, 0xf2, 0x4a}: {argUint, argString, argAddress}, 81 | {0x46, 0xa7, 0xd0, 0xce}: {argUint, argString, argBool}, 82 | {0x7d, 0x69, 0x0e, 0xe6}: {argUint, argUint, argString}, 83 | {0xe7, 0x82, 0x0a, 0x74}: {argUint, argUint, argUint}, 84 | {0xbe, 0x33, 0x49, 0x1b}: {argUint, argUint, argAddress}, 85 | {0x67, 0x57, 0x0f, 0xf7}: {argUint, argUint, argBool}, 86 | {0xce, 0x83, 0x04, 0x7b}: {argUint, argAddress, argString}, 87 | {0x88, 0x43, 0x43, 0xaa}: {argUint, argAddress, argUint}, 88 | {0x7d, 0x77, 0xa6, 0x1b}: {argUint, argAddress, argAddress}, 89 | {0x7a, 0xd0, 0x12, 0x8e}: {argUint, argAddress, argBool}, 90 | {0x8b, 0x0e, 0x14, 0xfe}: {argUint, argBool, argString}, 91 | {0x5a, 0x4d, 0x99, 0x22}: {argUint, argBool, argUint}, 92 | {0x42, 0x4e, 0xff, 0xbf}: {argUint, argBool, argAddress}, 93 | {0xd5, 0xce, 0xac, 0xe0}: {argUint, argBool, argBool}, 94 | {0xfb, 0x77, 0x22, 0x65}: {argAddress, argString, argString}, 95 | {0x1c, 0xda, 0xf2, 0x8a}: {argAddress, argString, argUint}, 96 | {0xf0, 0x87, 0x44, 0xe8}: {argAddress, argString, argAddress}, 97 | {0xcf, 0x02, 0x0f, 0xb1}: {argAddress, argString, argBool}, 98 | {0xba, 0xf9, 0x68, 0x49}: {argAddress, argUint, argString}, 99 | {0x87, 0x86, 0x13, 0x5e}: {argAddress, argUint, argUint}, 100 | {0x97, 0xec, 0xa3, 0x94}: {argAddress, argUint, argAddress}, 101 | {0xe5, 0x4a, 0xe1, 0x44}: {argAddress, argUint, argBool}, 102 | {0x00, 0x71, 0x50, 0xbe}: {argAddress, argAddress, argString}, 103 | {0x6c, 0x36, 0x6d, 0x72}: {argAddress, argAddress, argUint}, 104 | {0x01, 0x8c, 0x84, 0xc2}: {argAddress, argAddress, argAddress}, 105 | {0xf2, 0xa6, 0x62, 0x86}: {argAddress, argAddress, argBool}, 106 | {0x21, 0x22, 0x55, 0xcc}: {argAddress, argBool, argString}, 107 | {0x2c, 0x46, 0x8d, 0x15}: {argAddress, argBool, argUint}, 108 | {0xf1, 0x16, 0x99, 0xed}: {argAddress, argBool, argAddress}, 109 | {0xeb, 0x83, 0x0c, 0x92}: {argAddress, argBool, argBool}, 110 | {0xb0, 0x76, 0x84, 0x7f}: {argBool, argString, argString}, 111 | {0xc0, 0x38, 0x2a, 0xac}: {argBool, argString, argUint}, 112 | {0x95, 0x91, 0xb9, 0x53}: {argBool, argString, argAddress}, 113 | {0xdb, 0xb4, 0xc2, 0x47}: {argBool, argString, argBool}, 114 | {0xc8, 0x39, 0x7e, 0xb0}: {argBool, argUint, argString}, 115 | {0x3b, 0x5c, 0x03, 0xe0}: {argBool, argUint, argUint}, 116 | {0xc4, 0xd2, 0x35, 0x07}: {argBool, argUint, argAddress}, 117 | {0x1b, 0xad, 0xc9, 0xeb}: {argBool, argUint, argBool}, 118 | {0xde, 0x9a, 0x92, 0x70}: {argBool, argAddress, argString}, 119 | {0xeb, 0x70, 0x4b, 0xaf}: {argBool, argAddress, argUint}, 120 | {0xd2, 0x76, 0x36, 0x67}: {argBool, argAddress, argAddress}, 121 | {0x18, 0xc9, 0xc7, 0x46}: {argBool, argAddress, argBool}, 122 | {0x25, 0x55, 0xfa, 0x46}: {argBool, argBool, argString}, 123 | {0xb0, 0x13, 0x65, 0xbb}: {argBool, argBool, argUint}, 124 | {0x10, 0x78, 0xf6, 0x8d}: {argBool, argBool, argAddress}, 125 | {0x50, 0x70, 0x96, 0x98}: {argBool, argBool, argBool}, 126 | {0xde, 0x68, 0xf2, 0x0a}: {argString, argString, argString, argString}, 127 | {0x9f, 0xd0, 0x09, 0xf5}: {argString, argString, argString, argUint}, 128 | {0x6d, 0x57, 0x2f, 0x44}: {argString, argString, argString, argAddress}, 129 | {0x2c, 0x17, 0x54, 0xed}: {argString, argString, argString, argBool}, 130 | {0x8d, 0x14, 0x2c, 0xdd}: {argString, argString, argUint, argString}, 131 | {0xd5, 0xcf, 0x17, 0xd0}: {argString, argString, argUint, argUint}, 132 | {0x5d, 0x4f, 0x46, 0x80}: {argString, argString, argUint, argAddress}, 133 | {0xe6, 0x56, 0x58, 0xca}: {argString, argString, argUint, argBool}, 134 | {0xeb, 0x1b, 0xff, 0x80}: {argString, argString, argAddress, argString}, 135 | {0x4a, 0x81, 0xa5, 0x6a}: {argString, argString, argAddress, argUint}, 136 | {0x43, 0x9c, 0x7b, 0xef}: {argString, argString, argAddress, argAddress}, 137 | {0x5c, 0xcd, 0x4e, 0x37}: {argString, argString, argAddress, argBool}, 138 | {0x5e, 0x84, 0xb0, 0xea}: {argString, argString, argBool, argString}, 139 | {0x86, 0x81, 0x8a, 0x7a}: {argString, argString, argBool, argUint}, 140 | {0xc3, 0x71, 0xc7, 0xdb}: {argString, argString, argBool, argAddress}, 141 | {0x40, 0x78, 0x58, 0x69}: {argString, argString, argBool, argBool}, 142 | {0x6c, 0x98, 0xda, 0xe2}: {argString, argUint, argString, argString}, 143 | {0xa0, 0xc4, 0xb2, 0x25}: {argString, argUint, argString, argUint}, 144 | {0xbb, 0x72, 0x35, 0xe9}: {argString, argUint, argString, argAddress}, 145 | {0xe9, 0x9f, 0x82, 0xcf}: {argString, argUint, argString, argBool}, 146 | {0xa5, 0x4e, 0xd4, 0xbd}: {argString, argUint, argUint, argString}, 147 | {0x08, 0xee, 0x56, 0x66}: {argString, argUint, argUint, argUint}, 148 | {0xbe, 0xd7, 0x28, 0xbf}: {argString, argUint, argUint, argAddress}, 149 | {0xf7, 0x3c, 0x7e, 0x3d}: {argString, argUint, argUint, argBool}, 150 | {0x32, 0x54, 0xc2, 0xe8}: {argString, argUint, argAddress, argString}, 151 | {0x58, 0x49, 0x7a, 0xfe}: {argString, argUint, argAddress, argUint}, 152 | {0xea, 0xc8, 0x92, 0x81}: {argString, argUint, argAddress, argAddress}, 153 | {0x11, 0x06, 0xa8, 0xf7}: {argString, argUint, argAddress, argBool}, 154 | {0x76, 0xcc, 0x60, 0x64}: {argString, argUint, argBool, argString}, 155 | {0x55, 0x0e, 0x6e, 0xf5}: {argString, argUint, argBool, argUint}, 156 | {0xe5, 0x54, 0x9d, 0x91}: {argString, argUint, argBool, argAddress}, 157 | {0xe3, 0x7f, 0xf3, 0xd0}: {argString, argUint, argBool, argBool}, 158 | {0x24, 0x59, 0x86, 0xf2}: {argString, argAddress, argString, argString}, 159 | {0x8f, 0x62, 0x4b, 0xe9}: {argString, argAddress, argString, argUint}, 160 | {0xaa, 0xbc, 0x9a, 0x31}: {argString, argAddress, argString, argAddress}, 161 | {0x5f, 0x15, 0xd2, 0x8c}: {argString, argAddress, argString, argBool}, 162 | {0x4c, 0x55, 0xf2, 0x34}: {argString, argAddress, argUint, argString}, 163 | {0xda, 0xa3, 0x94, 0xbd}: {argString, argAddress, argUint, argUint}, 164 | {0xa3, 0x66, 0xec, 0x80}: {argString, argAddress, argUint, argAddress}, 165 | {0x5a, 0xc1, 0xc1, 0x3c}: {argString, argAddress, argUint, argBool}, 166 | {0x80, 0x0a, 0x1c, 0x67}: {argString, argAddress, argAddress, argString}, 167 | {0x6e, 0xb7, 0x94, 0x3d}: {argString, argAddress, argAddress, argUint}, 168 | {0xed, 0x8f, 0x28, 0xf6}: {argString, argAddress, argAddress, argAddress}, 169 | {0xb5, 0x9d, 0xbd, 0x60}: {argString, argAddress, argAddress, argBool}, 170 | {0x04, 0x54, 0xc0, 0x79}: {argString, argAddress, argBool, argString}, 171 | {0xc5, 0xd1, 0xbb, 0x8b}: {argString, argAddress, argBool, argUint}, 172 | {0x22, 0x36, 0x03, 0xbd}: {argString, argAddress, argBool, argAddress}, 173 | {0x79, 0x88, 0x4c, 0x2b}: {argString, argAddress, argBool, argBool}, 174 | {0xa8, 0x26, 0xca, 0xeb}: {argString, argBool, argString, argString}, 175 | {0x34, 0xcb, 0x30, 0x8d}: {argString, argBool, argString, argUint}, 176 | {0xe0, 0x62, 0x5b, 0x29}: {argString, argBool, argString, argAddress}, 177 | {0x3f, 0x8a, 0x70, 0x1d}: {argString, argBool, argString, argBool}, 178 | {0x42, 0xb9, 0xa2, 0x27}: {argString, argBool, argUint, argString}, 179 | {0x5d, 0xbf, 0xf0, 0x38}: {argString, argBool, argUint, argUint}, 180 | {0x71, 0xd3, 0x85, 0x0d}: {argString, argBool, argUint, argAddress}, 181 | {0x3c, 0xc5, 0xb5, 0xd3}: {argString, argBool, argUint, argBool}, 182 | {0x2d, 0x8e, 0x33, 0xa4}: {argString, argBool, argAddress, argString}, 183 | {0x28, 0xdf, 0x4e, 0x96}: {argString, argBool, argAddress, argUint}, 184 | {0x33, 0xe9, 0xdd, 0x1d}: {argString, argBool, argAddress, argAddress}, 185 | {0x95, 0x8c, 0x28, 0xc6}: {argString, argBool, argAddress, argBool}, 186 | {0x9d, 0x22, 0xd5, 0xdd}: {argString, argBool, argBool, argString}, 187 | {0x80, 0x75, 0x31, 0xe8}: {argString, argBool, argBool, argUint}, 188 | {0x71, 0x90, 0xa5, 0x29}: {argString, argBool, argBool, argAddress}, 189 | {0x89, 0x5a, 0xf8, 0xc5}: {argString, argBool, argBool, argBool}, 190 | {0x57, 0xdd, 0x0a, 0x11}: {argUint, argString, argString, argString}, 191 | {0x76, 0xec, 0x63, 0x5e}: {argUint, argString, argString, argUint}, 192 | {0xcc, 0x98, 0x8a, 0xa0}: {argUint, argString, argString, argAddress}, 193 | {0x12, 0x86, 0x2b, 0x98}: {argUint, argString, argString, argBool}, 194 | {0xa2, 0xbc, 0x0c, 0x99}: {argUint, argString, argUint, argString}, 195 | {0xc0, 0x04, 0x38, 0x07}: {argUint, argString, argUint, argUint}, 196 | {0xab, 0x7b, 0xd9, 0xfd}: {argUint, argString, argUint, argAddress}, 197 | {0x87, 0x5a, 0x6e, 0x2e}: {argUint, argString, argUint, argBool}, 198 | {0xf8, 0x98, 0x57, 0x7f}: {argUint, argString, argAddress, argString}, 199 | {0x98, 0xe7, 0xf3, 0xf3}: {argUint, argString, argAddress, argUint}, 200 | {0x7f, 0xa5, 0x45, 0x8b}: {argUint, argString, argAddress, argAddress}, 201 | {0xf9, 0x3f, 0xff, 0x37}: {argUint, argString, argAddress, argBool}, 202 | {0x8d, 0x48, 0x9c, 0xa0}: {argUint, argString, argBool, argString}, 203 | {0xa4, 0xb4, 0x8a, 0x7f}: {argUint, argString, argBool, argUint}, 204 | {0x79, 0x6f, 0x28, 0xa0}: {argUint, argString, argBool, argAddress}, 205 | {0x51, 0xbc, 0x2b, 0xc1}: {argUint, argString, argBool, argBool}, 206 | {0x7c, 0x03, 0x2a, 0x32}: {argUint, argUint, argString, argString}, 207 | {0x38, 0x94, 0x16, 0x3d}: {argUint, argUint, argString, argUint}, 208 | {0x43, 0x32, 0x85, 0xa2}: {argUint, argUint, argString, argAddress}, 209 | {0xb2, 0x2e, 0xaf, 0x06}: {argUint, argUint, argString, argBool}, 210 | {0x78, 0xad, 0x7a, 0x0c}: {argUint, argUint, argUint, argString}, 211 | {0x5c, 0xa0, 0xad, 0x3e}: {argUint, argUint, argUint, argUint}, 212 | {0xe0, 0x85, 0x3f, 0x69}: {argUint, argUint, argUint, argAddress}, 213 | {0x64, 0x52, 0xb9, 0xcb}: {argUint, argUint, argUint, argBool}, 214 | {0xd6, 0xa2, 0xd1, 0xde}: {argUint, argUint, argAddress, argString}, 215 | {0x61, 0x0b, 0xa8, 0xc0}: {argUint, argUint, argAddress, argUint}, 216 | {0xca, 0x93, 0x9b, 0x20}: {argUint, argUint, argAddress, argAddress}, 217 | {0xa8, 0xe8, 0x20, 0xae}: {argUint, argUint, argAddress, argBool}, 218 | {0xef, 0xd9, 0xcb, 0xee}: {argUint, argUint, argBool, argString}, 219 | {0x6c, 0x64, 0x7c, 0x8c}: {argUint, argUint, argBool, argUint}, 220 | {0xe1, 0x17, 0x74, 0x4f}: {argUint, argUint, argBool, argAddress}, 221 | {0x94, 0xbe, 0x3b, 0xb1}: {argUint, argUint, argBool, argBool}, 222 | {0x8d, 0x77, 0x86, 0x24}: {argUint, argAddress, argString, argString}, 223 | {0xa0, 0xc4, 0x14, 0xe8}: {argUint, argAddress, argString, argUint}, 224 | {0xcb, 0xe5, 0x8e, 0xfd}: {argUint, argAddress, argString, argAddress}, 225 | {0x22, 0xa4, 0x79, 0xa6}: {argUint, argAddress, argString, argBool}, 226 | {0x3e, 0xd3, 0xbd, 0x28}: {argUint, argAddress, argUint, argString}, 227 | {0xca, 0x9a, 0x3e, 0xb4}: {argUint, argAddress, argUint, argUint}, 228 | {0xfd, 0xb2, 0xec, 0xd4}: {argUint, argAddress, argUint, argAddress}, 229 | {0x19, 0xf6, 0x73, 0x69}: {argUint, argAddress, argUint, argBool}, 230 | {0x79, 0x43, 0xdc, 0x66}: {argUint, argAddress, argAddress, argString}, 231 | {0x9a, 0x3c, 0xbf, 0x96}: {argUint, argAddress, argAddress, argUint}, 232 | {0x55, 0x47, 0x45, 0xf9}: {argUint, argAddress, argAddress, argAddress}, 233 | {0x01, 0x55, 0x0b, 0x04}: {argUint, argAddress, argAddress, argBool}, 234 | {0x63, 0xf0, 0xe2, 0x42}: {argUint, argAddress, argBool, argString}, 235 | {0x7b, 0x08, 0xe8, 0xeb}: {argUint, argAddress, argBool, argUint}, 236 | {0xb6, 0x31, 0x30, 0x94}: {argUint, argAddress, argBool, argAddress}, 237 | {0x7e, 0x27, 0x41, 0x0d}: {argUint, argAddress, argBool, argBool}, 238 | {0xa4, 0x33, 0xfc, 0xfd}: {argUint, argBool, argString, argString}, 239 | {0x91, 0x5f, 0xdb, 0x28}: {argUint, argBool, argString, argUint}, 240 | {0x49, 0x6e, 0x2b, 0xb4}: {argUint, argBool, argString, argAddress}, 241 | {0x34, 0x6e, 0xb8, 0xc7}: {argUint, argBool, argString, argBool}, 242 | {0xe8, 0xdd, 0xbc, 0x56}: {argUint, argBool, argUint, argString}, 243 | {0x56, 0x82, 0x8d, 0xa4}: {argUint, argBool, argUint, argUint}, 244 | {0x4f, 0x40, 0x05, 0x8e}: {argUint, argBool, argUint, argAddress}, 245 | {0xd2, 0xab, 0xc4, 0xfd}: {argUint, argBool, argUint, argBool}, 246 | {0xa2, 0x30, 0x76, 0x1e}: {argUint, argBool, argAddress, argString}, 247 | {0x41, 0xb5, 0xef, 0x3b}: {argUint, argBool, argAddress, argUint}, 248 | {0x86, 0xed, 0xc1, 0x0c}: {argUint, argBool, argAddress, argAddress}, 249 | {0x91, 0xfb, 0x12, 0x42}: {argUint, argBool, argAddress, argBool}, 250 | {0x31, 0x8a, 0xe5, 0x9b}: {argUint, argBool, argBool, argString}, 251 | {0xbd, 0x25, 0xad, 0x59}: {argUint, argBool, argBool, argUint}, 252 | {0x53, 0x06, 0x22, 0x5d}: {argUint, argBool, argBool, argAddress}, 253 | {0x4e, 0x6c, 0x53, 0x15}: {argUint, argBool, argBool, argBool}, 254 | {0x5d, 0x02, 0xc5, 0x0b}: {argAddress, argString, argString, argString}, 255 | {0xa1, 0x4f, 0xd0, 0x39}: {argAddress, argString, argString, argUint}, 256 | {0xa0, 0x4e, 0x2f, 0x87}: {argAddress, argString, argString, argAddress}, 257 | {0x35, 0xa5, 0x07, 0x1f}: {argAddress, argString, argString, argBool}, 258 | {0x5d, 0x13, 0x65, 0xc9}: {argAddress, argString, argUint, argString}, 259 | {0xa4, 0xc9, 0x2a, 0x60}: {argAddress, argString, argUint, argUint}, 260 | {0xdf, 0xd7, 0xd8, 0x0b}: {argAddress, argString, argUint, argAddress}, 261 | {0x7e, 0x25, 0x0d, 0x5b}: {argAddress, argString, argUint, argBool}, 262 | {0xf7, 0xe3, 0x62, 0x45}: {argAddress, argString, argAddress, argString}, 263 | {0x8c, 0x19, 0x33, 0xa9}: {argAddress, argString, argAddress, argUint}, 264 | {0x0d, 0x36, 0xfa, 0x20}: {argAddress, argString, argAddress, argAddress}, 265 | {0x0d, 0xf1, 0x2b, 0x76}: {argAddress, argString, argAddress, argBool}, 266 | {0xbc, 0x0b, 0x61, 0xfe}: {argAddress, argString, argBool, argString}, 267 | {0xe7, 0x20, 0x52, 0x1c}: {argAddress, argString, argBool, argUint}, 268 | {0x20, 0x58, 0x71, 0xc2}: {argAddress, argString, argBool, argAddress}, 269 | {0x5f, 0x1d, 0x5c, 0x9f}: {argAddress, argString, argBool, argBool}, 270 | {0x7e, 0x56, 0xc6, 0x93}: {argAddress, argUint, argString, argString}, 271 | {0xf5, 0x12, 0xcf, 0x9b}: {argAddress, argUint, argString, argUint}, 272 | {0xdc, 0x79, 0x26, 0x04}: {argAddress, argUint, argString, argAddress}, 273 | {0xa4, 0x02, 0x4f, 0x11}: {argAddress, argUint, argString, argBool}, 274 | {0x89, 0x34, 0x0d, 0xab}: {argAddress, argUint, argUint, argString}, 275 | {0x3d, 0x0e, 0x9d, 0xe4}: {argAddress, argUint, argUint, argUint}, 276 | {0x1e, 0xf6, 0x34, 0x34}: {argAddress, argUint, argUint, argAddress}, 277 | {0xec, 0x4b, 0xa8, 0xa2}: {argAddress, argUint, argUint, argBool}, 278 | {0x5d, 0x71, 0xf3, 0x9e}: {argAddress, argUint, argAddress, argString}, 279 | {0xa5, 0xd9, 0x87, 0x68}: {argAddress, argUint, argAddress, argUint}, 280 | {0xec, 0x24, 0x84, 0x6f}: {argAddress, argUint, argAddress, argAddress}, 281 | {0xf1, 0x81, 0xa1, 0xe9}: {argAddress, argUint, argAddress, argBool}, 282 | {0x8e, 0x8e, 0x4e, 0x75}: {argAddress, argUint, argBool, argString}, 283 | {0x69, 0x8f, 0x43, 0x92}: {argAddress, argUint, argBool, argUint}, 284 | {0x23, 0xe5, 0x49, 0x72}: {argAddress, argUint, argBool, argAddress}, 285 | {0xfe, 0xa1, 0xd5, 0x5a}: {argAddress, argUint, argBool, argBool}, 286 | {0x21, 0xbd, 0xaf, 0x25}: {argAddress, argAddress, argString, argString}, 287 | {0x04, 0x28, 0x93, 0x00}: {argAddress, argAddress, argString, argUint}, 288 | {0x8f, 0x73, 0x6d, 0x16}: {argAddress, argAddress, argString, argAddress}, 289 | {0x6f, 0x1a, 0x59, 0x4e}: {argAddress, argAddress, argString, argBool}, 290 | {0x9d, 0xd1, 0x2e, 0xad}: {argAddress, argAddress, argUint, argString}, 291 | {0x54, 0xfd, 0xf3, 0xe4}: {argAddress, argAddress, argUint, argUint}, 292 | {0xd6, 0xc6, 0x52, 0x76}: {argAddress, argAddress, argUint, argAddress}, 293 | {0xc2, 0xf6, 0x88, 0xec}: {argAddress, argAddress, argUint, argBool}, 294 | {0xf8, 0x08, 0xda, 0x20}: {argAddress, argAddress, argAddress, argString}, 295 | {0xed, 0x5e, 0xac, 0x87}: {argAddress, argAddress, argAddress, argUint}, 296 | {0x66, 0x5b, 0xf1, 0x34}: {argAddress, argAddress, argAddress, argAddress}, 297 | {0x0e, 0x37, 0x89, 0x94}: {argAddress, argAddress, argAddress, argBool}, 298 | {0xaa, 0x65, 0x40, 0xc8}: {argAddress, argAddress, argBool, argString}, 299 | {0x95, 0xd6, 0x5f, 0x11}: {argAddress, argAddress, argBool, argUint}, 300 | {0x9f, 0x1b, 0xc3, 0x6e}: {argAddress, argAddress, argBool, argAddress}, 301 | {0x2c, 0xd4, 0x13, 0x4a}: {argAddress, argAddress, argBool, argBool}, 302 | {0x47, 0x5c, 0x5c, 0x33}: {argAddress, argBool, argString, argString}, 303 | {0x9e, 0x12, 0x7b, 0x6e}: {argAddress, argBool, argString, argUint}, 304 | {0x19, 0xfd, 0x49, 0x56}: {argAddress, argBool, argString, argAddress}, 305 | {0x50, 0xad, 0x46, 0x1d}: {argAddress, argBool, argString, argBool}, 306 | {0x9b, 0x58, 0x8e, 0xcc}: {argAddress, argBool, argUint, argString}, 307 | {0xc2, 0x10, 0xa0, 0x1e}: {argAddress, argBool, argUint, argUint}, 308 | {0x0d, 0x8c, 0xe6, 0x1e}: {argAddress, argBool, argUint, argAddress}, 309 | {0x85, 0xcd, 0xc5, 0xaf}: {argAddress, argBool, argUint, argBool}, 310 | {0x2d, 0xd7, 0x78, 0xe6}: {argAddress, argBool, argAddress, argString}, 311 | {0xdc, 0x71, 0x16, 0xd2}: {argAddress, argBool, argAddress, argUint}, 312 | {0x66, 0x03, 0x75, 0xdd}: {argAddress, argBool, argAddress, argAddress}, 313 | {0xa6, 0xf5, 0x0b, 0x0f}: {argAddress, argBool, argAddress, argBool}, 314 | {0xdf, 0xc4, 0xa2, 0xe8}: {argAddress, argBool, argBool, argString}, 315 | {0xcf, 0xb5, 0x87, 0x56}: {argAddress, argBool, argBool, argUint}, 316 | {0xcf, 0x39, 0x44, 0x85}: {argAddress, argBool, argBool, argAddress}, 317 | {0xca, 0xc4, 0x34, 0x79}: {argAddress, argBool, argBool, argBool}, 318 | {0x17, 0x62, 0xe3, 0x2a}: {argBool, argString, argString, argString}, 319 | {0x5d, 0xdb, 0x25, 0x92}: {argBool, argString, argString, argUint}, 320 | {0x97, 0xd3, 0x94, 0xd8}: {argBool, argString, argString, argAddress}, 321 | {0x1e, 0x4b, 0x87, 0xe5}: {argBool, argString, argString, argBool}, 322 | {0x77, 0xa1, 0xab, 0xed}: {argBool, argString, argUint, argString}, 323 | {0x8e, 0x4a, 0xe8, 0x6e}: {argBool, argString, argUint, argUint}, 324 | {0x5b, 0x22, 0xb9, 0x38}: {argBool, argString, argUint, argAddress}, 325 | {0x20, 0xbb, 0xc9, 0xaf}: {argBool, argString, argUint, argBool}, 326 | {0x12, 0xd6, 0xc7, 0x88}: {argBool, argString, argAddress, argString}, 327 | {0x1b, 0x0b, 0x95, 0x5b}: {argBool, argString, argAddress, argUint}, 328 | {0x2b, 0x2b, 0x18, 0xdc}: {argBool, argString, argAddress, argAddress}, 329 | {0x6d, 0xd4, 0x34, 0xca}: {argBool, argString, argAddress, argBool}, 330 | {0x48, 0x3d, 0x04, 0x16}: {argBool, argString, argBool, argString}, 331 | {0x8d, 0x6f, 0x9c, 0xa5}: {argBool, argString, argBool, argUint}, 332 | {0x53, 0x8e, 0x06, 0xab}: {argBool, argString, argBool, argAddress}, 333 | {0xdc, 0x5e, 0x93, 0x5b}: {argBool, argString, argBool, argBool}, 334 | {0xd3, 0x2a, 0x65, 0x48}: {argBool, argUint, argString, argString}, 335 | {0x41, 0x80, 0x01, 0x1b}: {argBool, argUint, argString, argUint}, 336 | {0xa5, 0xc7, 0x0d, 0x29}: {argBool, argUint, argString, argAddress}, 337 | {0x91, 0xd2, 0xf8, 0x13}: {argBool, argUint, argString, argBool}, 338 | {0xda, 0x06, 0x66, 0xc8}: {argBool, argUint, argUint, argString}, 339 | {0x32, 0xdf, 0xa5, 0x24}: {argBool, argUint, argUint, argUint}, 340 | {0xf1, 0x61, 0xb2, 0x21}: {argBool, argUint, argUint, argAddress}, 341 | {0xa4, 0x1d, 0x81, 0xde}: {argBool, argUint, argUint, argBool}, 342 | {0x18, 0x09, 0x13, 0x41}: {argBool, argUint, argAddress, argString}, 343 | {0xca, 0xa5, 0x23, 0x6a}: {argBool, argUint, argAddress, argUint}, 344 | {0x8a, 0x2f, 0x90, 0xaa}: {argBool, argUint, argAddress, argAddress}, 345 | {0x65, 0xad, 0xf4, 0x08}: {argBool, argUint, argAddress, argBool}, 346 | {0xb6, 0xd5, 0x69, 0xd4}: {argBool, argUint, argBool, argString}, 347 | {0xd3, 0xde, 0x55, 0x93}: {argBool, argUint, argBool, argUint}, 348 | {0x42, 0x67, 0xc7, 0xf8}: {argBool, argUint, argBool, argAddress}, 349 | {0x9e, 0x01, 0xf7, 0x41}: {argBool, argUint, argBool, argBool}, 350 | {0xa7, 0x3c, 0x1d, 0xb6}: {argBool, argAddress, argString, argString}, 351 | {0x0b, 0x99, 0xfc, 0x22}: {argBool, argAddress, argString, argUint}, 352 | {0x6f, 0x7c, 0x60, 0x3e}: {argBool, argAddress, argString, argAddress}, 353 | {0xe2, 0xbf, 0xd6, 0x0b}: {argBool, argAddress, argString, argBool}, 354 | {0xa0, 0x68, 0x58, 0x33}: {argBool, argAddress, argUint, argString}, 355 | {0x9b, 0xfe, 0x72, 0xbc}: {argBool, argAddress, argUint, argUint}, 356 | {0x68, 0xf1, 0x58, 0xb5}: {argBool, argAddress, argUint, argAddress}, 357 | {0xee, 0x8d, 0x86, 0x72}: {argBool, argAddress, argUint, argBool}, 358 | {0xd8, 0x12, 0xa1, 0x67}: {argBool, argAddress, argAddress, argString}, 359 | {0x52, 0x84, 0xbd, 0x6c}: {argBool, argAddress, argAddress, argUint}, 360 | {0x1d, 0x14, 0xd0, 0x01}: {argBool, argAddress, argAddress, argAddress}, 361 | {0x46, 0x60, 0x0b, 0xe0}: {argBool, argAddress, argAddress, argBool}, 362 | {0x4a, 0x66, 0xcb, 0x34}: {argBool, argAddress, argBool, argString}, 363 | {0x4c, 0xb6, 0x0f, 0xd1}: {argBool, argAddress, argBool, argUint}, 364 | {0x1c, 0x41, 0xa3, 0x36}: {argBool, argAddress, argBool, argAddress}, 365 | {0x6a, 0x9c, 0x47, 0x8b}: {argBool, argAddress, argBool, argBool}, 366 | {0x6d, 0x1e, 0x87, 0x51}: {argBool, argBool, argString, argString}, 367 | {0x17, 0x8b, 0x46, 0x85}: {argBool, argBool, argString, argUint}, 368 | {0xf9, 0xad, 0x2b, 0x89}: {argBool, argBool, argString, argAddress}, 369 | {0xb8, 0x57, 0x16, 0x3a}: {argBool, argBool, argString, argBool}, 370 | {0x50, 0x61, 0x89, 0x37}: {argBool, argBool, argUint, argString}, 371 | {0x46, 0x67, 0xde, 0x8e}: {argBool, argBool, argUint, argUint}, 372 | {0x0b, 0xff, 0x95, 0x0d}: {argBool, argBool, argUint, argAddress}, 373 | {0xab, 0x5c, 0xc1, 0xc4}: {argBool, argBool, argUint, argBool}, 374 | {0xa0, 0xa4, 0x79, 0x63}: {argBool, argBool, argAddress, argString}, 375 | {0x60, 0x93, 0x86, 0xe7}: {argBool, argBool, argAddress, argUint}, 376 | {0xf4, 0x88, 0x0e, 0xa4}: {argBool, argBool, argAddress, argAddress}, 377 | {0xc0, 0xa3, 0x02, 0xd8}: {argBool, argBool, argAddress, argBool}, 378 | {0x2a, 0xe4, 0x08, 0xd4}: {argBool, argBool, argBool, argString}, 379 | {0xc2, 0x48, 0x83, 0x4d}: {argBool, argBool, argBool, argUint}, 380 | {0x8c, 0x32, 0x9b, 0x1a}: {argBool, argBool, argBool, argAddress}, 381 | {0x3b, 0x2a, 0x5c, 0xe0}: {argBool, argBool, argBool, argBool}, 382 | } 383 | -------------------------------------------------------------------------------- /internal/console/console.sol: -------------------------------------------------------------------------------- 1 | // Code generated by go generate; DO NOT EDIT. 2 | // SPDX-License-Identifier: MIT 3 | pragma solidity >=0.5.0 <0.9.0; 4 | 5 | library console { 6 | function _castLogViewToPure(function(bytes memory) internal view fnIn) internal pure returns (function(bytes memory) internal pure fnOut) { 7 | assembly { 8 | fnOut := fnIn 9 | } 10 | } 11 | 12 | function _logView(bytes memory data) internal view { 13 | assembly { 14 | pop(staticcall(gas(), 0x000000000000000000636F6e736F6c652e6c6f67, add(data, 0x20), mload(data), 0, 0)) 15 | } 16 | } 17 | 18 | function _log(bytes memory data) internal pure { 19 | _castLogViewToPure(_logView)(data); 20 | } 21 | 22 | function logString(string memory p0) internal pure { 23 | _log(abi.encodeWithSignature("log(string)", p0)); 24 | } 25 | 26 | function logUint(uint p0) internal pure { 27 | _log(abi.encodeWithSignature("log(uint)", p0)); 28 | } 29 | 30 | function logInt(int p0) internal pure { 31 | _log(abi.encodeWithSignature("log(int)", p0)); 32 | } 33 | 34 | function logBool(bool p0) internal pure { 35 | _log(abi.encodeWithSignature("log(bool)", p0)); 36 | } 37 | 38 | function logAddress(address p0) internal pure { 39 | _log(abi.encodeWithSignature("log(address)", p0)); 40 | } 41 | 42 | function logBytes(bytes memory p0) internal pure { 43 | _log(abi.encodeWithSignature("log(bytes)", p0)); 44 | } 45 | 46 | function logBytes1(bytes1 p0) internal pure { 47 | _log(abi.encodeWithSignature("log(bytes1)", p0)); 48 | } 49 | 50 | function logBytes2(bytes2 p0) internal pure { 51 | _log(abi.encodeWithSignature("log(bytes2)", p0)); 52 | } 53 | 54 | function logBytes3(bytes3 p0) internal pure { 55 | _log(abi.encodeWithSignature("log(bytes3)", p0)); 56 | } 57 | 58 | function logBytes4(bytes4 p0) internal pure { 59 | _log(abi.encodeWithSignature("log(bytes4)", p0)); 60 | } 61 | 62 | function logBytes5(bytes5 p0) internal pure { 63 | _log(abi.encodeWithSignature("log(bytes5)", p0)); 64 | } 65 | 66 | function logBytes6(bytes6 p0) internal pure { 67 | _log(abi.encodeWithSignature("log(bytes6)", p0)); 68 | } 69 | 70 | function logBytes7(bytes7 p0) internal pure { 71 | _log(abi.encodeWithSignature("log(bytes7)", p0)); 72 | } 73 | 74 | function logBytes8(bytes8 p0) internal pure { 75 | _log(abi.encodeWithSignature("log(bytes8)", p0)); 76 | } 77 | 78 | function logBytes9(bytes9 p0) internal pure { 79 | _log(abi.encodeWithSignature("log(bytes9)", p0)); 80 | } 81 | 82 | function logBytes10(bytes10 p0) internal pure { 83 | _log(abi.encodeWithSignature("log(bytes10)", p0)); 84 | } 85 | 86 | function logBytes11(bytes11 p0) internal pure { 87 | _log(abi.encodeWithSignature("log(bytes11)", p0)); 88 | } 89 | 90 | function logBytes12(bytes12 p0) internal pure { 91 | _log(abi.encodeWithSignature("log(bytes12)", p0)); 92 | } 93 | 94 | function logBytes13(bytes13 p0) internal pure { 95 | _log(abi.encodeWithSignature("log(bytes13)", p0)); 96 | } 97 | 98 | function logBytes14(bytes14 p0) internal pure { 99 | _log(abi.encodeWithSignature("log(bytes14)", p0)); 100 | } 101 | 102 | function logBytes15(bytes15 p0) internal pure { 103 | _log(abi.encodeWithSignature("log(bytes15)", p0)); 104 | } 105 | 106 | function logBytes16(bytes16 p0) internal pure { 107 | _log(abi.encodeWithSignature("log(bytes16)", p0)); 108 | } 109 | 110 | function logBytes17(bytes17 p0) internal pure { 111 | _log(abi.encodeWithSignature("log(bytes17)", p0)); 112 | } 113 | 114 | function logBytes18(bytes18 p0) internal pure { 115 | _log(abi.encodeWithSignature("log(bytes18)", p0)); 116 | } 117 | 118 | function logBytes19(bytes19 p0) internal pure { 119 | _log(abi.encodeWithSignature("log(bytes19)", p0)); 120 | } 121 | 122 | function logBytes20(bytes20 p0) internal pure { 123 | _log(abi.encodeWithSignature("log(bytes20)", p0)); 124 | } 125 | 126 | function logBytes21(bytes21 p0) internal pure { 127 | _log(abi.encodeWithSignature("log(bytes21)", p0)); 128 | } 129 | 130 | function logBytes22(bytes22 p0) internal pure { 131 | _log(abi.encodeWithSignature("log(bytes22)", p0)); 132 | } 133 | 134 | function logBytes23(bytes23 p0) internal pure { 135 | _log(abi.encodeWithSignature("log(bytes23)", p0)); 136 | } 137 | 138 | function logBytes24(bytes24 p0) internal pure { 139 | _log(abi.encodeWithSignature("log(bytes24)", p0)); 140 | } 141 | 142 | function logBytes25(bytes25 p0) internal pure { 143 | _log(abi.encodeWithSignature("log(bytes25)", p0)); 144 | } 145 | 146 | function logBytes26(bytes26 p0) internal pure { 147 | _log(abi.encodeWithSignature("log(bytes26)", p0)); 148 | } 149 | 150 | function logBytes27(bytes27 p0) internal pure { 151 | _log(abi.encodeWithSignature("log(bytes27)", p0)); 152 | } 153 | 154 | function logBytes28(bytes28 p0) internal pure { 155 | _log(abi.encodeWithSignature("log(bytes28)", p0)); 156 | } 157 | 158 | function logBytes29(bytes29 p0) internal pure { 159 | _log(abi.encodeWithSignature("log(bytes29)", p0)); 160 | } 161 | 162 | function logBytes30(bytes30 p0) internal pure { 163 | _log(abi.encodeWithSignature("log(bytes30)", p0)); 164 | } 165 | 166 | function logBytes31(bytes31 p0) internal pure { 167 | _log(abi.encodeWithSignature("log(bytes31)", p0)); 168 | } 169 | 170 | function logBytes32(bytes32 p0) internal pure { 171 | _log(abi.encodeWithSignature("log(bytes32)", p0)); 172 | } 173 | 174 | function log() internal pure { 175 | _log(abi.encodeWithSignature("log()")); 176 | } 177 | 178 | function log(string memory p0) internal pure { 179 | _log(abi.encodeWithSignature("log(string)", p0)); 180 | } 181 | 182 | function log(uint p0) internal pure { 183 | _log(abi.encodeWithSignature("log(uint)", p0)); 184 | } 185 | 186 | function log(bool p0) internal pure { 187 | _log(abi.encodeWithSignature("log(bool)", p0)); 188 | } 189 | 190 | function log(address p0) internal pure { 191 | _log(abi.encodeWithSignature("log(address)", p0)); 192 | } 193 | 194 | function log(string memory p0, string memory p1) internal pure { 195 | _log(abi.encodeWithSignature("log(string,string)", p0, p1)); 196 | } 197 | 198 | function log(string memory p0, uint p1) internal pure { 199 | _log(abi.encodeWithSignature("log(string,uint)", p0, p1)); 200 | } 201 | 202 | function log(string memory p0, address p1) internal pure { 203 | _log(abi.encodeWithSignature("log(string,address)", p0, p1)); 204 | } 205 | 206 | function log(string memory p0, bool p1) internal pure { 207 | _log(abi.encodeWithSignature("log(string,bool)", p0, p1)); 208 | } 209 | 210 | function log(uint p0, string memory p1) internal pure { 211 | _log(abi.encodeWithSignature("log(uint,string)", p0, p1)); 212 | } 213 | 214 | function log(uint p0, uint p1) internal pure { 215 | _log(abi.encodeWithSignature("log(uint,uint)", p0, p1)); 216 | } 217 | 218 | function log(uint p0, address p1) internal pure { 219 | _log(abi.encodeWithSignature("log(uint,address)", p0, p1)); 220 | } 221 | 222 | function log(uint p0, bool p1) internal pure { 223 | _log(abi.encodeWithSignature("log(uint,bool)", p0, p1)); 224 | } 225 | 226 | function log(address p0, string memory p1) internal pure { 227 | _log(abi.encodeWithSignature("log(address,string)", p0, p1)); 228 | } 229 | 230 | function log(address p0, uint p1) internal pure { 231 | _log(abi.encodeWithSignature("log(address,uint)", p0, p1)); 232 | } 233 | 234 | function log(address p0, address p1) internal pure { 235 | _log(abi.encodeWithSignature("log(address,address)", p0, p1)); 236 | } 237 | 238 | function log(address p0, bool p1) internal pure { 239 | _log(abi.encodeWithSignature("log(address,bool)", p0, p1)); 240 | } 241 | 242 | function log(bool p0, string memory p1) internal pure { 243 | _log(abi.encodeWithSignature("log(bool,string)", p0, p1)); 244 | } 245 | 246 | function log(bool p0, uint p1) internal pure { 247 | _log(abi.encodeWithSignature("log(bool,uint)", p0, p1)); 248 | } 249 | 250 | function log(bool p0, address p1) internal pure { 251 | _log(abi.encodeWithSignature("log(bool,address)", p0, p1)); 252 | } 253 | 254 | function log(bool p0, bool p1) internal pure { 255 | _log(abi.encodeWithSignature("log(bool,bool)", p0, p1)); 256 | } 257 | 258 | function log(string memory p0, string memory p1, string memory p2) internal pure { 259 | _log(abi.encodeWithSignature("log(string,string,string)", p0, p1, p2)); 260 | } 261 | 262 | function log(string memory p0, string memory p1, uint p2) internal pure { 263 | _log(abi.encodeWithSignature("log(string,string,uint)", p0, p1, p2)); 264 | } 265 | 266 | function log(string memory p0, string memory p1, address p2) internal pure { 267 | _log(abi.encodeWithSignature("log(string,string,address)", p0, p1, p2)); 268 | } 269 | 270 | function log(string memory p0, string memory p1, bool p2) internal pure { 271 | _log(abi.encodeWithSignature("log(string,string,bool)", p0, p1, p2)); 272 | } 273 | 274 | function log(string memory p0, uint p1, string memory p2) internal pure { 275 | _log(abi.encodeWithSignature("log(string,uint,string)", p0, p1, p2)); 276 | } 277 | 278 | function log(string memory p0, uint p1, uint p2) internal pure { 279 | _log(abi.encodeWithSignature("log(string,uint,uint)", p0, p1, p2)); 280 | } 281 | 282 | function log(string memory p0, uint p1, address p2) internal pure { 283 | _log(abi.encodeWithSignature("log(string,uint,address)", p0, p1, p2)); 284 | } 285 | 286 | function log(string memory p0, uint p1, bool p2) internal pure { 287 | _log(abi.encodeWithSignature("log(string,uint,bool)", p0, p1, p2)); 288 | } 289 | 290 | function log(string memory p0, address p1, string memory p2) internal pure { 291 | _log(abi.encodeWithSignature("log(string,address,string)", p0, p1, p2)); 292 | } 293 | 294 | function log(string memory p0, address p1, uint p2) internal pure { 295 | _log(abi.encodeWithSignature("log(string,address,uint)", p0, p1, p2)); 296 | } 297 | 298 | function log(string memory p0, address p1, address p2) internal pure { 299 | _log(abi.encodeWithSignature("log(string,address,address)", p0, p1, p2)); 300 | } 301 | 302 | function log(string memory p0, address p1, bool p2) internal pure { 303 | _log(abi.encodeWithSignature("log(string,address,bool)", p0, p1, p2)); 304 | } 305 | 306 | function log(string memory p0, bool p1, string memory p2) internal pure { 307 | _log(abi.encodeWithSignature("log(string,bool,string)", p0, p1, p2)); 308 | } 309 | 310 | function log(string memory p0, bool p1, uint p2) internal pure { 311 | _log(abi.encodeWithSignature("log(string,bool,uint)", p0, p1, p2)); 312 | } 313 | 314 | function log(string memory p0, bool p1, address p2) internal pure { 315 | _log(abi.encodeWithSignature("log(string,bool,address)", p0, p1, p2)); 316 | } 317 | 318 | function log(string memory p0, bool p1, bool p2) internal pure { 319 | _log(abi.encodeWithSignature("log(string,bool,bool)", p0, p1, p2)); 320 | } 321 | 322 | function log(uint p0, string memory p1, string memory p2) internal pure { 323 | _log(abi.encodeWithSignature("log(uint,string,string)", p0, p1, p2)); 324 | } 325 | 326 | function log(uint p0, string memory p1, uint p2) internal pure { 327 | _log(abi.encodeWithSignature("log(uint,string,uint)", p0, p1, p2)); 328 | } 329 | 330 | function log(uint p0, string memory p1, address p2) internal pure { 331 | _log(abi.encodeWithSignature("log(uint,string,address)", p0, p1, p2)); 332 | } 333 | 334 | function log(uint p0, string memory p1, bool p2) internal pure { 335 | _log(abi.encodeWithSignature("log(uint,string,bool)", p0, p1, p2)); 336 | } 337 | 338 | function log(uint p0, uint p1, string memory p2) internal pure { 339 | _log(abi.encodeWithSignature("log(uint,uint,string)", p0, p1, p2)); 340 | } 341 | 342 | function log(uint p0, uint p1, uint p2) internal pure { 343 | _log(abi.encodeWithSignature("log(uint,uint,uint)", p0, p1, p2)); 344 | } 345 | 346 | function log(uint p0, uint p1, address p2) internal pure { 347 | _log(abi.encodeWithSignature("log(uint,uint,address)", p0, p1, p2)); 348 | } 349 | 350 | function log(uint p0, uint p1, bool p2) internal pure { 351 | _log(abi.encodeWithSignature("log(uint,uint,bool)", p0, p1, p2)); 352 | } 353 | 354 | function log(uint p0, address p1, string memory p2) internal pure { 355 | _log(abi.encodeWithSignature("log(uint,address,string)", p0, p1, p2)); 356 | } 357 | 358 | function log(uint p0, address p1, uint p2) internal pure { 359 | _log(abi.encodeWithSignature("log(uint,address,uint)", p0, p1, p2)); 360 | } 361 | 362 | function log(uint p0, address p1, address p2) internal pure { 363 | _log(abi.encodeWithSignature("log(uint,address,address)", p0, p1, p2)); 364 | } 365 | 366 | function log(uint p0, address p1, bool p2) internal pure { 367 | _log(abi.encodeWithSignature("log(uint,address,bool)", p0, p1, p2)); 368 | } 369 | 370 | function log(uint p0, bool p1, string memory p2) internal pure { 371 | _log(abi.encodeWithSignature("log(uint,bool,string)", p0, p1, p2)); 372 | } 373 | 374 | function log(uint p0, bool p1, uint p2) internal pure { 375 | _log(abi.encodeWithSignature("log(uint,bool,uint)", p0, p1, p2)); 376 | } 377 | 378 | function log(uint p0, bool p1, address p2) internal pure { 379 | _log(abi.encodeWithSignature("log(uint,bool,address)", p0, p1, p2)); 380 | } 381 | 382 | function log(uint p0, bool p1, bool p2) internal pure { 383 | _log(abi.encodeWithSignature("log(uint,bool,bool)", p0, p1, p2)); 384 | } 385 | 386 | function log(address p0, string memory p1, string memory p2) internal pure { 387 | _log(abi.encodeWithSignature("log(address,string,string)", p0, p1, p2)); 388 | } 389 | 390 | function log(address p0, string memory p1, uint p2) internal pure { 391 | _log(abi.encodeWithSignature("log(address,string,uint)", p0, p1, p2)); 392 | } 393 | 394 | function log(address p0, string memory p1, address p2) internal pure { 395 | _log(abi.encodeWithSignature("log(address,string,address)", p0, p1, p2)); 396 | } 397 | 398 | function log(address p0, string memory p1, bool p2) internal pure { 399 | _log(abi.encodeWithSignature("log(address,string,bool)", p0, p1, p2)); 400 | } 401 | 402 | function log(address p0, uint p1, string memory p2) internal pure { 403 | _log(abi.encodeWithSignature("log(address,uint,string)", p0, p1, p2)); 404 | } 405 | 406 | function log(address p0, uint p1, uint p2) internal pure { 407 | _log(abi.encodeWithSignature("log(address,uint,uint)", p0, p1, p2)); 408 | } 409 | 410 | function log(address p0, uint p1, address p2) internal pure { 411 | _log(abi.encodeWithSignature("log(address,uint,address)", p0, p1, p2)); 412 | } 413 | 414 | function log(address p0, uint p1, bool p2) internal pure { 415 | _log(abi.encodeWithSignature("log(address,uint,bool)", p0, p1, p2)); 416 | } 417 | 418 | function log(address p0, address p1, string memory p2) internal pure { 419 | _log(abi.encodeWithSignature("log(address,address,string)", p0, p1, p2)); 420 | } 421 | 422 | function log(address p0, address p1, uint p2) internal pure { 423 | _log(abi.encodeWithSignature("log(address,address,uint)", p0, p1, p2)); 424 | } 425 | 426 | function log(address p0, address p1, address p2) internal pure { 427 | _log(abi.encodeWithSignature("log(address,address,address)", p0, p1, p2)); 428 | } 429 | 430 | function log(address p0, address p1, bool p2) internal pure { 431 | _log(abi.encodeWithSignature("log(address,address,bool)", p0, p1, p2)); 432 | } 433 | 434 | function log(address p0, bool p1, string memory p2) internal pure { 435 | _log(abi.encodeWithSignature("log(address,bool,string)", p0, p1, p2)); 436 | } 437 | 438 | function log(address p0, bool p1, uint p2) internal pure { 439 | _log(abi.encodeWithSignature("log(address,bool,uint)", p0, p1, p2)); 440 | } 441 | 442 | function log(address p0, bool p1, address p2) internal pure { 443 | _log(abi.encodeWithSignature("log(address,bool,address)", p0, p1, p2)); 444 | } 445 | 446 | function log(address p0, bool p1, bool p2) internal pure { 447 | _log(abi.encodeWithSignature("log(address,bool,bool)", p0, p1, p2)); 448 | } 449 | 450 | function log(bool p0, string memory p1, string memory p2) internal pure { 451 | _log(abi.encodeWithSignature("log(bool,string,string)", p0, p1, p2)); 452 | } 453 | 454 | function log(bool p0, string memory p1, uint p2) internal pure { 455 | _log(abi.encodeWithSignature("log(bool,string,uint)", p0, p1, p2)); 456 | } 457 | 458 | function log(bool p0, string memory p1, address p2) internal pure { 459 | _log(abi.encodeWithSignature("log(bool,string,address)", p0, p1, p2)); 460 | } 461 | 462 | function log(bool p0, string memory p1, bool p2) internal pure { 463 | _log(abi.encodeWithSignature("log(bool,string,bool)", p0, p1, p2)); 464 | } 465 | 466 | function log(bool p0, uint p1, string memory p2) internal pure { 467 | _log(abi.encodeWithSignature("log(bool,uint,string)", p0, p1, p2)); 468 | } 469 | 470 | function log(bool p0, uint p1, uint p2) internal pure { 471 | _log(abi.encodeWithSignature("log(bool,uint,uint)", p0, p1, p2)); 472 | } 473 | 474 | function log(bool p0, uint p1, address p2) internal pure { 475 | _log(abi.encodeWithSignature("log(bool,uint,address)", p0, p1, p2)); 476 | } 477 | 478 | function log(bool p0, uint p1, bool p2) internal pure { 479 | _log(abi.encodeWithSignature("log(bool,uint,bool)", p0, p1, p2)); 480 | } 481 | 482 | function log(bool p0, address p1, string memory p2) internal pure { 483 | _log(abi.encodeWithSignature("log(bool,address,string)", p0, p1, p2)); 484 | } 485 | 486 | function log(bool p0, address p1, uint p2) internal pure { 487 | _log(abi.encodeWithSignature("log(bool,address,uint)", p0, p1, p2)); 488 | } 489 | 490 | function log(bool p0, address p1, address p2) internal pure { 491 | _log(abi.encodeWithSignature("log(bool,address,address)", p0, p1, p2)); 492 | } 493 | 494 | function log(bool p0, address p1, bool p2) internal pure { 495 | _log(abi.encodeWithSignature("log(bool,address,bool)", p0, p1, p2)); 496 | } 497 | 498 | function log(bool p0, bool p1, string memory p2) internal pure { 499 | _log(abi.encodeWithSignature("log(bool,bool,string)", p0, p1, p2)); 500 | } 501 | 502 | function log(bool p0, bool p1, uint p2) internal pure { 503 | _log(abi.encodeWithSignature("log(bool,bool,uint)", p0, p1, p2)); 504 | } 505 | 506 | function log(bool p0, bool p1, address p2) internal pure { 507 | _log(abi.encodeWithSignature("log(bool,bool,address)", p0, p1, p2)); 508 | } 509 | 510 | function log(bool p0, bool p1, bool p2) internal pure { 511 | _log(abi.encodeWithSignature("log(bool,bool,bool)", p0, p1, p2)); 512 | } 513 | 514 | function log(string memory p0, string memory p1, string memory p2, string memory p3) internal pure { 515 | _log(abi.encodeWithSignature("log(string,string,string,string)", p0, p1, p2, p3)); 516 | } 517 | 518 | function log(string memory p0, string memory p1, string memory p2, uint p3) internal pure { 519 | _log(abi.encodeWithSignature("log(string,string,string,uint)", p0, p1, p2, p3)); 520 | } 521 | 522 | function log(string memory p0, string memory p1, string memory p2, address p3) internal pure { 523 | _log(abi.encodeWithSignature("log(string,string,string,address)", p0, p1, p2, p3)); 524 | } 525 | 526 | function log(string memory p0, string memory p1, string memory p2, bool p3) internal pure { 527 | _log(abi.encodeWithSignature("log(string,string,string,bool)", p0, p1, p2, p3)); 528 | } 529 | 530 | function log(string memory p0, string memory p1, uint p2, string memory p3) internal pure { 531 | _log(abi.encodeWithSignature("log(string,string,uint,string)", p0, p1, p2, p3)); 532 | } 533 | 534 | function log(string memory p0, string memory p1, uint p2, uint p3) internal pure { 535 | _log(abi.encodeWithSignature("log(string,string,uint,uint)", p0, p1, p2, p3)); 536 | } 537 | 538 | function log(string memory p0, string memory p1, uint p2, address p3) internal pure { 539 | _log(abi.encodeWithSignature("log(string,string,uint,address)", p0, p1, p2, p3)); 540 | } 541 | 542 | function log(string memory p0, string memory p1, uint p2, bool p3) internal pure { 543 | _log(abi.encodeWithSignature("log(string,string,uint,bool)", p0, p1, p2, p3)); 544 | } 545 | 546 | function log(string memory p0, string memory p1, address p2, string memory p3) internal pure { 547 | _log(abi.encodeWithSignature("log(string,string,address,string)", p0, p1, p2, p3)); 548 | } 549 | 550 | function log(string memory p0, string memory p1, address p2, uint p3) internal pure { 551 | _log(abi.encodeWithSignature("log(string,string,address,uint)", p0, p1, p2, p3)); 552 | } 553 | 554 | function log(string memory p0, string memory p1, address p2, address p3) internal pure { 555 | _log(abi.encodeWithSignature("log(string,string,address,address)", p0, p1, p2, p3)); 556 | } 557 | 558 | function log(string memory p0, string memory p1, address p2, bool p3) internal pure { 559 | _log(abi.encodeWithSignature("log(string,string,address,bool)", p0, p1, p2, p3)); 560 | } 561 | 562 | function log(string memory p0, string memory p1, bool p2, string memory p3) internal pure { 563 | _log(abi.encodeWithSignature("log(string,string,bool,string)", p0, p1, p2, p3)); 564 | } 565 | 566 | function log(string memory p0, string memory p1, bool p2, uint p3) internal pure { 567 | _log(abi.encodeWithSignature("log(string,string,bool,uint)", p0, p1, p2, p3)); 568 | } 569 | 570 | function log(string memory p0, string memory p1, bool p2, address p3) internal pure { 571 | _log(abi.encodeWithSignature("log(string,string,bool,address)", p0, p1, p2, p3)); 572 | } 573 | 574 | function log(string memory p0, string memory p1, bool p2, bool p3) internal pure { 575 | _log(abi.encodeWithSignature("log(string,string,bool,bool)", p0, p1, p2, p3)); 576 | } 577 | 578 | function log(string memory p0, uint p1, string memory p2, string memory p3) internal pure { 579 | _log(abi.encodeWithSignature("log(string,uint,string,string)", p0, p1, p2, p3)); 580 | } 581 | 582 | function log(string memory p0, uint p1, string memory p2, uint p3) internal pure { 583 | _log(abi.encodeWithSignature("log(string,uint,string,uint)", p0, p1, p2, p3)); 584 | } 585 | 586 | function log(string memory p0, uint p1, string memory p2, address p3) internal pure { 587 | _log(abi.encodeWithSignature("log(string,uint,string,address)", p0, p1, p2, p3)); 588 | } 589 | 590 | function log(string memory p0, uint p1, string memory p2, bool p3) internal pure { 591 | _log(abi.encodeWithSignature("log(string,uint,string,bool)", p0, p1, p2, p3)); 592 | } 593 | 594 | function log(string memory p0, uint p1, uint p2, string memory p3) internal pure { 595 | _log(abi.encodeWithSignature("log(string,uint,uint,string)", p0, p1, p2, p3)); 596 | } 597 | 598 | function log(string memory p0, uint p1, uint p2, uint p3) internal pure { 599 | _log(abi.encodeWithSignature("log(string,uint,uint,uint)", p0, p1, p2, p3)); 600 | } 601 | 602 | function log(string memory p0, uint p1, uint p2, address p3) internal pure { 603 | _log(abi.encodeWithSignature("log(string,uint,uint,address)", p0, p1, p2, p3)); 604 | } 605 | 606 | function log(string memory p0, uint p1, uint p2, bool p3) internal pure { 607 | _log(abi.encodeWithSignature("log(string,uint,uint,bool)", p0, p1, p2, p3)); 608 | } 609 | 610 | function log(string memory p0, uint p1, address p2, string memory p3) internal pure { 611 | _log(abi.encodeWithSignature("log(string,uint,address,string)", p0, p1, p2, p3)); 612 | } 613 | 614 | function log(string memory p0, uint p1, address p2, uint p3) internal pure { 615 | _log(abi.encodeWithSignature("log(string,uint,address,uint)", p0, p1, p2, p3)); 616 | } 617 | 618 | function log(string memory p0, uint p1, address p2, address p3) internal pure { 619 | _log(abi.encodeWithSignature("log(string,uint,address,address)", p0, p1, p2, p3)); 620 | } 621 | 622 | function log(string memory p0, uint p1, address p2, bool p3) internal pure { 623 | _log(abi.encodeWithSignature("log(string,uint,address,bool)", p0, p1, p2, p3)); 624 | } 625 | 626 | function log(string memory p0, uint p1, bool p2, string memory p3) internal pure { 627 | _log(abi.encodeWithSignature("log(string,uint,bool,string)", p0, p1, p2, p3)); 628 | } 629 | 630 | function log(string memory p0, uint p1, bool p2, uint p3) internal pure { 631 | _log(abi.encodeWithSignature("log(string,uint,bool,uint)", p0, p1, p2, p3)); 632 | } 633 | 634 | function log(string memory p0, uint p1, bool p2, address p3) internal pure { 635 | _log(abi.encodeWithSignature("log(string,uint,bool,address)", p0, p1, p2, p3)); 636 | } 637 | 638 | function log(string memory p0, uint p1, bool p2, bool p3) internal pure { 639 | _log(abi.encodeWithSignature("log(string,uint,bool,bool)", p0, p1, p2, p3)); 640 | } 641 | 642 | function log(string memory p0, address p1, string memory p2, string memory p3) internal pure { 643 | _log(abi.encodeWithSignature("log(string,address,string,string)", p0, p1, p2, p3)); 644 | } 645 | 646 | function log(string memory p0, address p1, string memory p2, uint p3) internal pure { 647 | _log(abi.encodeWithSignature("log(string,address,string,uint)", p0, p1, p2, p3)); 648 | } 649 | 650 | function log(string memory p0, address p1, string memory p2, address p3) internal pure { 651 | _log(abi.encodeWithSignature("log(string,address,string,address)", p0, p1, p2, p3)); 652 | } 653 | 654 | function log(string memory p0, address p1, string memory p2, bool p3) internal pure { 655 | _log(abi.encodeWithSignature("log(string,address,string,bool)", p0, p1, p2, p3)); 656 | } 657 | 658 | function log(string memory p0, address p1, uint p2, string memory p3) internal pure { 659 | _log(abi.encodeWithSignature("log(string,address,uint,string)", p0, p1, p2, p3)); 660 | } 661 | 662 | function log(string memory p0, address p1, uint p2, uint p3) internal pure { 663 | _log(abi.encodeWithSignature("log(string,address,uint,uint)", p0, p1, p2, p3)); 664 | } 665 | 666 | function log(string memory p0, address p1, uint p2, address p3) internal pure { 667 | _log(abi.encodeWithSignature("log(string,address,uint,address)", p0, p1, p2, p3)); 668 | } 669 | 670 | function log(string memory p0, address p1, uint p2, bool p3) internal pure { 671 | _log(abi.encodeWithSignature("log(string,address,uint,bool)", p0, p1, p2, p3)); 672 | } 673 | 674 | function log(string memory p0, address p1, address p2, string memory p3) internal pure { 675 | _log(abi.encodeWithSignature("log(string,address,address,string)", p0, p1, p2, p3)); 676 | } 677 | 678 | function log(string memory p0, address p1, address p2, uint p3) internal pure { 679 | _log(abi.encodeWithSignature("log(string,address,address,uint)", p0, p1, p2, p3)); 680 | } 681 | 682 | function log(string memory p0, address p1, address p2, address p3) internal pure { 683 | _log(abi.encodeWithSignature("log(string,address,address,address)", p0, p1, p2, p3)); 684 | } 685 | 686 | function log(string memory p0, address p1, address p2, bool p3) internal pure { 687 | _log(abi.encodeWithSignature("log(string,address,address,bool)", p0, p1, p2, p3)); 688 | } 689 | 690 | function log(string memory p0, address p1, bool p2, string memory p3) internal pure { 691 | _log(abi.encodeWithSignature("log(string,address,bool,string)", p0, p1, p2, p3)); 692 | } 693 | 694 | function log(string memory p0, address p1, bool p2, uint p3) internal pure { 695 | _log(abi.encodeWithSignature("log(string,address,bool,uint)", p0, p1, p2, p3)); 696 | } 697 | 698 | function log(string memory p0, address p1, bool p2, address p3) internal pure { 699 | _log(abi.encodeWithSignature("log(string,address,bool,address)", p0, p1, p2, p3)); 700 | } 701 | 702 | function log(string memory p0, address p1, bool p2, bool p3) internal pure { 703 | _log(abi.encodeWithSignature("log(string,address,bool,bool)", p0, p1, p2, p3)); 704 | } 705 | 706 | function log(string memory p0, bool p1, string memory p2, string memory p3) internal pure { 707 | _log(abi.encodeWithSignature("log(string,bool,string,string)", p0, p1, p2, p3)); 708 | } 709 | 710 | function log(string memory p0, bool p1, string memory p2, uint p3) internal pure { 711 | _log(abi.encodeWithSignature("log(string,bool,string,uint)", p0, p1, p2, p3)); 712 | } 713 | 714 | function log(string memory p0, bool p1, string memory p2, address p3) internal pure { 715 | _log(abi.encodeWithSignature("log(string,bool,string,address)", p0, p1, p2, p3)); 716 | } 717 | 718 | function log(string memory p0, bool p1, string memory p2, bool p3) internal pure { 719 | _log(abi.encodeWithSignature("log(string,bool,string,bool)", p0, p1, p2, p3)); 720 | } 721 | 722 | function log(string memory p0, bool p1, uint p2, string memory p3) internal pure { 723 | _log(abi.encodeWithSignature("log(string,bool,uint,string)", p0, p1, p2, p3)); 724 | } 725 | 726 | function log(string memory p0, bool p1, uint p2, uint p3) internal pure { 727 | _log(abi.encodeWithSignature("log(string,bool,uint,uint)", p0, p1, p2, p3)); 728 | } 729 | 730 | function log(string memory p0, bool p1, uint p2, address p3) internal pure { 731 | _log(abi.encodeWithSignature("log(string,bool,uint,address)", p0, p1, p2, p3)); 732 | } 733 | 734 | function log(string memory p0, bool p1, uint p2, bool p3) internal pure { 735 | _log(abi.encodeWithSignature("log(string,bool,uint,bool)", p0, p1, p2, p3)); 736 | } 737 | 738 | function log(string memory p0, bool p1, address p2, string memory p3) internal pure { 739 | _log(abi.encodeWithSignature("log(string,bool,address,string)", p0, p1, p2, p3)); 740 | } 741 | 742 | function log(string memory p0, bool p1, address p2, uint p3) internal pure { 743 | _log(abi.encodeWithSignature("log(string,bool,address,uint)", p0, p1, p2, p3)); 744 | } 745 | 746 | function log(string memory p0, bool p1, address p2, address p3) internal pure { 747 | _log(abi.encodeWithSignature("log(string,bool,address,address)", p0, p1, p2, p3)); 748 | } 749 | 750 | function log(string memory p0, bool p1, address p2, bool p3) internal pure { 751 | _log(abi.encodeWithSignature("log(string,bool,address,bool)", p0, p1, p2, p3)); 752 | } 753 | 754 | function log(string memory p0, bool p1, bool p2, string memory p3) internal pure { 755 | _log(abi.encodeWithSignature("log(string,bool,bool,string)", p0, p1, p2, p3)); 756 | } 757 | 758 | function log(string memory p0, bool p1, bool p2, uint p3) internal pure { 759 | _log(abi.encodeWithSignature("log(string,bool,bool,uint)", p0, p1, p2, p3)); 760 | } 761 | 762 | function log(string memory p0, bool p1, bool p2, address p3) internal pure { 763 | _log(abi.encodeWithSignature("log(string,bool,bool,address)", p0, p1, p2, p3)); 764 | } 765 | 766 | function log(string memory p0, bool p1, bool p2, bool p3) internal pure { 767 | _log(abi.encodeWithSignature("log(string,bool,bool,bool)", p0, p1, p2, p3)); 768 | } 769 | 770 | function log(uint p0, string memory p1, string memory p2, string memory p3) internal pure { 771 | _log(abi.encodeWithSignature("log(uint,string,string,string)", p0, p1, p2, p3)); 772 | } 773 | 774 | function log(uint p0, string memory p1, string memory p2, uint p3) internal pure { 775 | _log(abi.encodeWithSignature("log(uint,string,string,uint)", p0, p1, p2, p3)); 776 | } 777 | 778 | function log(uint p0, string memory p1, string memory p2, address p3) internal pure { 779 | _log(abi.encodeWithSignature("log(uint,string,string,address)", p0, p1, p2, p3)); 780 | } 781 | 782 | function log(uint p0, string memory p1, string memory p2, bool p3) internal pure { 783 | _log(abi.encodeWithSignature("log(uint,string,string,bool)", p0, p1, p2, p3)); 784 | } 785 | 786 | function log(uint p0, string memory p1, uint p2, string memory p3) internal pure { 787 | _log(abi.encodeWithSignature("log(uint,string,uint,string)", p0, p1, p2, p3)); 788 | } 789 | 790 | function log(uint p0, string memory p1, uint p2, uint p3) internal pure { 791 | _log(abi.encodeWithSignature("log(uint,string,uint,uint)", p0, p1, p2, p3)); 792 | } 793 | 794 | function log(uint p0, string memory p1, uint p2, address p3) internal pure { 795 | _log(abi.encodeWithSignature("log(uint,string,uint,address)", p0, p1, p2, p3)); 796 | } 797 | 798 | function log(uint p0, string memory p1, uint p2, bool p3) internal pure { 799 | _log(abi.encodeWithSignature("log(uint,string,uint,bool)", p0, p1, p2, p3)); 800 | } 801 | 802 | function log(uint p0, string memory p1, address p2, string memory p3) internal pure { 803 | _log(abi.encodeWithSignature("log(uint,string,address,string)", p0, p1, p2, p3)); 804 | } 805 | 806 | function log(uint p0, string memory p1, address p2, uint p3) internal pure { 807 | _log(abi.encodeWithSignature("log(uint,string,address,uint)", p0, p1, p2, p3)); 808 | } 809 | 810 | function log(uint p0, string memory p1, address p2, address p3) internal pure { 811 | _log(abi.encodeWithSignature("log(uint,string,address,address)", p0, p1, p2, p3)); 812 | } 813 | 814 | function log(uint p0, string memory p1, address p2, bool p3) internal pure { 815 | _log(abi.encodeWithSignature("log(uint,string,address,bool)", p0, p1, p2, p3)); 816 | } 817 | 818 | function log(uint p0, string memory p1, bool p2, string memory p3) internal pure { 819 | _log(abi.encodeWithSignature("log(uint,string,bool,string)", p0, p1, p2, p3)); 820 | } 821 | 822 | function log(uint p0, string memory p1, bool p2, uint p3) internal pure { 823 | _log(abi.encodeWithSignature("log(uint,string,bool,uint)", p0, p1, p2, p3)); 824 | } 825 | 826 | function log(uint p0, string memory p1, bool p2, address p3) internal pure { 827 | _log(abi.encodeWithSignature("log(uint,string,bool,address)", p0, p1, p2, p3)); 828 | } 829 | 830 | function log(uint p0, string memory p1, bool p2, bool p3) internal pure { 831 | _log(abi.encodeWithSignature("log(uint,string,bool,bool)", p0, p1, p2, p3)); 832 | } 833 | 834 | function log(uint p0, uint p1, string memory p2, string memory p3) internal pure { 835 | _log(abi.encodeWithSignature("log(uint,uint,string,string)", p0, p1, p2, p3)); 836 | } 837 | 838 | function log(uint p0, uint p1, string memory p2, uint p3) internal pure { 839 | _log(abi.encodeWithSignature("log(uint,uint,string,uint)", p0, p1, p2, p3)); 840 | } 841 | 842 | function log(uint p0, uint p1, string memory p2, address p3) internal pure { 843 | _log(abi.encodeWithSignature("log(uint,uint,string,address)", p0, p1, p2, p3)); 844 | } 845 | 846 | function log(uint p0, uint p1, string memory p2, bool p3) internal pure { 847 | _log(abi.encodeWithSignature("log(uint,uint,string,bool)", p0, p1, p2, p3)); 848 | } 849 | 850 | function log(uint p0, uint p1, uint p2, string memory p3) internal pure { 851 | _log(abi.encodeWithSignature("log(uint,uint,uint,string)", p0, p1, p2, p3)); 852 | } 853 | 854 | function log(uint p0, uint p1, uint p2, uint p3) internal pure { 855 | _log(abi.encodeWithSignature("log(uint,uint,uint,uint)", p0, p1, p2, p3)); 856 | } 857 | 858 | function log(uint p0, uint p1, uint p2, address p3) internal pure { 859 | _log(abi.encodeWithSignature("log(uint,uint,uint,address)", p0, p1, p2, p3)); 860 | } 861 | 862 | function log(uint p0, uint p1, uint p2, bool p3) internal pure { 863 | _log(abi.encodeWithSignature("log(uint,uint,uint,bool)", p0, p1, p2, p3)); 864 | } 865 | 866 | function log(uint p0, uint p1, address p2, string memory p3) internal pure { 867 | _log(abi.encodeWithSignature("log(uint,uint,address,string)", p0, p1, p2, p3)); 868 | } 869 | 870 | function log(uint p0, uint p1, address p2, uint p3) internal pure { 871 | _log(abi.encodeWithSignature("log(uint,uint,address,uint)", p0, p1, p2, p3)); 872 | } 873 | 874 | function log(uint p0, uint p1, address p2, address p3) internal pure { 875 | _log(abi.encodeWithSignature("log(uint,uint,address,address)", p0, p1, p2, p3)); 876 | } 877 | 878 | function log(uint p0, uint p1, address p2, bool p3) internal pure { 879 | _log(abi.encodeWithSignature("log(uint,uint,address,bool)", p0, p1, p2, p3)); 880 | } 881 | 882 | function log(uint p0, uint p1, bool p2, string memory p3) internal pure { 883 | _log(abi.encodeWithSignature("log(uint,uint,bool,string)", p0, p1, p2, p3)); 884 | } 885 | 886 | function log(uint p0, uint p1, bool p2, uint p3) internal pure { 887 | _log(abi.encodeWithSignature("log(uint,uint,bool,uint)", p0, p1, p2, p3)); 888 | } 889 | 890 | function log(uint p0, uint p1, bool p2, address p3) internal pure { 891 | _log(abi.encodeWithSignature("log(uint,uint,bool,address)", p0, p1, p2, p3)); 892 | } 893 | 894 | function log(uint p0, uint p1, bool p2, bool p3) internal pure { 895 | _log(abi.encodeWithSignature("log(uint,uint,bool,bool)", p0, p1, p2, p3)); 896 | } 897 | 898 | function log(uint p0, address p1, string memory p2, string memory p3) internal pure { 899 | _log(abi.encodeWithSignature("log(uint,address,string,string)", p0, p1, p2, p3)); 900 | } 901 | 902 | function log(uint p0, address p1, string memory p2, uint p3) internal pure { 903 | _log(abi.encodeWithSignature("log(uint,address,string,uint)", p0, p1, p2, p3)); 904 | } 905 | 906 | function log(uint p0, address p1, string memory p2, address p3) internal pure { 907 | _log(abi.encodeWithSignature("log(uint,address,string,address)", p0, p1, p2, p3)); 908 | } 909 | 910 | function log(uint p0, address p1, string memory p2, bool p3) internal pure { 911 | _log(abi.encodeWithSignature("log(uint,address,string,bool)", p0, p1, p2, p3)); 912 | } 913 | 914 | function log(uint p0, address p1, uint p2, string memory p3) internal pure { 915 | _log(abi.encodeWithSignature("log(uint,address,uint,string)", p0, p1, p2, p3)); 916 | } 917 | 918 | function log(uint p0, address p1, uint p2, uint p3) internal pure { 919 | _log(abi.encodeWithSignature("log(uint,address,uint,uint)", p0, p1, p2, p3)); 920 | } 921 | 922 | function log(uint p0, address p1, uint p2, address p3) internal pure { 923 | _log(abi.encodeWithSignature("log(uint,address,uint,address)", p0, p1, p2, p3)); 924 | } 925 | 926 | function log(uint p0, address p1, uint p2, bool p3) internal pure { 927 | _log(abi.encodeWithSignature("log(uint,address,uint,bool)", p0, p1, p2, p3)); 928 | } 929 | 930 | function log(uint p0, address p1, address p2, string memory p3) internal pure { 931 | _log(abi.encodeWithSignature("log(uint,address,address,string)", p0, p1, p2, p3)); 932 | } 933 | 934 | function log(uint p0, address p1, address p2, uint p3) internal pure { 935 | _log(abi.encodeWithSignature("log(uint,address,address,uint)", p0, p1, p2, p3)); 936 | } 937 | 938 | function log(uint p0, address p1, address p2, address p3) internal pure { 939 | _log(abi.encodeWithSignature("log(uint,address,address,address)", p0, p1, p2, p3)); 940 | } 941 | 942 | function log(uint p0, address p1, address p2, bool p3) internal pure { 943 | _log(abi.encodeWithSignature("log(uint,address,address,bool)", p0, p1, p2, p3)); 944 | } 945 | 946 | function log(uint p0, address p1, bool p2, string memory p3) internal pure { 947 | _log(abi.encodeWithSignature("log(uint,address,bool,string)", p0, p1, p2, p3)); 948 | } 949 | 950 | function log(uint p0, address p1, bool p2, uint p3) internal pure { 951 | _log(abi.encodeWithSignature("log(uint,address,bool,uint)", p0, p1, p2, p3)); 952 | } 953 | 954 | function log(uint p0, address p1, bool p2, address p3) internal pure { 955 | _log(abi.encodeWithSignature("log(uint,address,bool,address)", p0, p1, p2, p3)); 956 | } 957 | 958 | function log(uint p0, address p1, bool p2, bool p3) internal pure { 959 | _log(abi.encodeWithSignature("log(uint,address,bool,bool)", p0, p1, p2, p3)); 960 | } 961 | 962 | function log(uint p0, bool p1, string memory p2, string memory p3) internal pure { 963 | _log(abi.encodeWithSignature("log(uint,bool,string,string)", p0, p1, p2, p3)); 964 | } 965 | 966 | function log(uint p0, bool p1, string memory p2, uint p3) internal pure { 967 | _log(abi.encodeWithSignature("log(uint,bool,string,uint)", p0, p1, p2, p3)); 968 | } 969 | 970 | function log(uint p0, bool p1, string memory p2, address p3) internal pure { 971 | _log(abi.encodeWithSignature("log(uint,bool,string,address)", p0, p1, p2, p3)); 972 | } 973 | 974 | function log(uint p0, bool p1, string memory p2, bool p3) internal pure { 975 | _log(abi.encodeWithSignature("log(uint,bool,string,bool)", p0, p1, p2, p3)); 976 | } 977 | 978 | function log(uint p0, bool p1, uint p2, string memory p3) internal pure { 979 | _log(abi.encodeWithSignature("log(uint,bool,uint,string)", p0, p1, p2, p3)); 980 | } 981 | 982 | function log(uint p0, bool p1, uint p2, uint p3) internal pure { 983 | _log(abi.encodeWithSignature("log(uint,bool,uint,uint)", p0, p1, p2, p3)); 984 | } 985 | 986 | function log(uint p0, bool p1, uint p2, address p3) internal pure { 987 | _log(abi.encodeWithSignature("log(uint,bool,uint,address)", p0, p1, p2, p3)); 988 | } 989 | 990 | function log(uint p0, bool p1, uint p2, bool p3) internal pure { 991 | _log(abi.encodeWithSignature("log(uint,bool,uint,bool)", p0, p1, p2, p3)); 992 | } 993 | 994 | function log(uint p0, bool p1, address p2, string memory p3) internal pure { 995 | _log(abi.encodeWithSignature("log(uint,bool,address,string)", p0, p1, p2, p3)); 996 | } 997 | 998 | function log(uint p0, bool p1, address p2, uint p3) internal pure { 999 | _log(abi.encodeWithSignature("log(uint,bool,address,uint)", p0, p1, p2, p3)); 1000 | } 1001 | 1002 | function log(uint p0, bool p1, address p2, address p3) internal pure { 1003 | _log(abi.encodeWithSignature("log(uint,bool,address,address)", p0, p1, p2, p3)); 1004 | } 1005 | 1006 | function log(uint p0, bool p1, address p2, bool p3) internal pure { 1007 | _log(abi.encodeWithSignature("log(uint,bool,address,bool)", p0, p1, p2, p3)); 1008 | } 1009 | 1010 | function log(uint p0, bool p1, bool p2, string memory p3) internal pure { 1011 | _log(abi.encodeWithSignature("log(uint,bool,bool,string)", p0, p1, p2, p3)); 1012 | } 1013 | 1014 | function log(uint p0, bool p1, bool p2, uint p3) internal pure { 1015 | _log(abi.encodeWithSignature("log(uint,bool,bool,uint)", p0, p1, p2, p3)); 1016 | } 1017 | 1018 | function log(uint p0, bool p1, bool p2, address p3) internal pure { 1019 | _log(abi.encodeWithSignature("log(uint,bool,bool,address)", p0, p1, p2, p3)); 1020 | } 1021 | 1022 | function log(uint p0, bool p1, bool p2, bool p3) internal pure { 1023 | _log(abi.encodeWithSignature("log(uint,bool,bool,bool)", p0, p1, p2, p3)); 1024 | } 1025 | 1026 | function log(address p0, string memory p1, string memory p2, string memory p3) internal pure { 1027 | _log(abi.encodeWithSignature("log(address,string,string,string)", p0, p1, p2, p3)); 1028 | } 1029 | 1030 | function log(address p0, string memory p1, string memory p2, uint p3) internal pure { 1031 | _log(abi.encodeWithSignature("log(address,string,string,uint)", p0, p1, p2, p3)); 1032 | } 1033 | 1034 | function log(address p0, string memory p1, string memory p2, address p3) internal pure { 1035 | _log(abi.encodeWithSignature("log(address,string,string,address)", p0, p1, p2, p3)); 1036 | } 1037 | 1038 | function log(address p0, string memory p1, string memory p2, bool p3) internal pure { 1039 | _log(abi.encodeWithSignature("log(address,string,string,bool)", p0, p1, p2, p3)); 1040 | } 1041 | 1042 | function log(address p0, string memory p1, uint p2, string memory p3) internal pure { 1043 | _log(abi.encodeWithSignature("log(address,string,uint,string)", p0, p1, p2, p3)); 1044 | } 1045 | 1046 | function log(address p0, string memory p1, uint p2, uint p3) internal pure { 1047 | _log(abi.encodeWithSignature("log(address,string,uint,uint)", p0, p1, p2, p3)); 1048 | } 1049 | 1050 | function log(address p0, string memory p1, uint p2, address p3) internal pure { 1051 | _log(abi.encodeWithSignature("log(address,string,uint,address)", p0, p1, p2, p3)); 1052 | } 1053 | 1054 | function log(address p0, string memory p1, uint p2, bool p3) internal pure { 1055 | _log(abi.encodeWithSignature("log(address,string,uint,bool)", p0, p1, p2, p3)); 1056 | } 1057 | 1058 | function log(address p0, string memory p1, address p2, string memory p3) internal pure { 1059 | _log(abi.encodeWithSignature("log(address,string,address,string)", p0, p1, p2, p3)); 1060 | } 1061 | 1062 | function log(address p0, string memory p1, address p2, uint p3) internal pure { 1063 | _log(abi.encodeWithSignature("log(address,string,address,uint)", p0, p1, p2, p3)); 1064 | } 1065 | 1066 | function log(address p0, string memory p1, address p2, address p3) internal pure { 1067 | _log(abi.encodeWithSignature("log(address,string,address,address)", p0, p1, p2, p3)); 1068 | } 1069 | 1070 | function log(address p0, string memory p1, address p2, bool p3) internal pure { 1071 | _log(abi.encodeWithSignature("log(address,string,address,bool)", p0, p1, p2, p3)); 1072 | } 1073 | 1074 | function log(address p0, string memory p1, bool p2, string memory p3) internal pure { 1075 | _log(abi.encodeWithSignature("log(address,string,bool,string)", p0, p1, p2, p3)); 1076 | } 1077 | 1078 | function log(address p0, string memory p1, bool p2, uint p3) internal pure { 1079 | _log(abi.encodeWithSignature("log(address,string,bool,uint)", p0, p1, p2, p3)); 1080 | } 1081 | 1082 | function log(address p0, string memory p1, bool p2, address p3) internal pure { 1083 | _log(abi.encodeWithSignature("log(address,string,bool,address)", p0, p1, p2, p3)); 1084 | } 1085 | 1086 | function log(address p0, string memory p1, bool p2, bool p3) internal pure { 1087 | _log(abi.encodeWithSignature("log(address,string,bool,bool)", p0, p1, p2, p3)); 1088 | } 1089 | 1090 | function log(address p0, uint p1, string memory p2, string memory p3) internal pure { 1091 | _log(abi.encodeWithSignature("log(address,uint,string,string)", p0, p1, p2, p3)); 1092 | } 1093 | 1094 | function log(address p0, uint p1, string memory p2, uint p3) internal pure { 1095 | _log(abi.encodeWithSignature("log(address,uint,string,uint)", p0, p1, p2, p3)); 1096 | } 1097 | 1098 | function log(address p0, uint p1, string memory p2, address p3) internal pure { 1099 | _log(abi.encodeWithSignature("log(address,uint,string,address)", p0, p1, p2, p3)); 1100 | } 1101 | 1102 | function log(address p0, uint p1, string memory p2, bool p3) internal pure { 1103 | _log(abi.encodeWithSignature("log(address,uint,string,bool)", p0, p1, p2, p3)); 1104 | } 1105 | 1106 | function log(address p0, uint p1, uint p2, string memory p3) internal pure { 1107 | _log(abi.encodeWithSignature("log(address,uint,uint,string)", p0, p1, p2, p3)); 1108 | } 1109 | 1110 | function log(address p0, uint p1, uint p2, uint p3) internal pure { 1111 | _log(abi.encodeWithSignature("log(address,uint,uint,uint)", p0, p1, p2, p3)); 1112 | } 1113 | 1114 | function log(address p0, uint p1, uint p2, address p3) internal pure { 1115 | _log(abi.encodeWithSignature("log(address,uint,uint,address)", p0, p1, p2, p3)); 1116 | } 1117 | 1118 | function log(address p0, uint p1, uint p2, bool p3) internal pure { 1119 | _log(abi.encodeWithSignature("log(address,uint,uint,bool)", p0, p1, p2, p3)); 1120 | } 1121 | 1122 | function log(address p0, uint p1, address p2, string memory p3) internal pure { 1123 | _log(abi.encodeWithSignature("log(address,uint,address,string)", p0, p1, p2, p3)); 1124 | } 1125 | 1126 | function log(address p0, uint p1, address p2, uint p3) internal pure { 1127 | _log(abi.encodeWithSignature("log(address,uint,address,uint)", p0, p1, p2, p3)); 1128 | } 1129 | 1130 | function log(address p0, uint p1, address p2, address p3) internal pure { 1131 | _log(abi.encodeWithSignature("log(address,uint,address,address)", p0, p1, p2, p3)); 1132 | } 1133 | 1134 | function log(address p0, uint p1, address p2, bool p3) internal pure { 1135 | _log(abi.encodeWithSignature("log(address,uint,address,bool)", p0, p1, p2, p3)); 1136 | } 1137 | 1138 | function log(address p0, uint p1, bool p2, string memory p3) internal pure { 1139 | _log(abi.encodeWithSignature("log(address,uint,bool,string)", p0, p1, p2, p3)); 1140 | } 1141 | 1142 | function log(address p0, uint p1, bool p2, uint p3) internal pure { 1143 | _log(abi.encodeWithSignature("log(address,uint,bool,uint)", p0, p1, p2, p3)); 1144 | } 1145 | 1146 | function log(address p0, uint p1, bool p2, address p3) internal pure { 1147 | _log(abi.encodeWithSignature("log(address,uint,bool,address)", p0, p1, p2, p3)); 1148 | } 1149 | 1150 | function log(address p0, uint p1, bool p2, bool p3) internal pure { 1151 | _log(abi.encodeWithSignature("log(address,uint,bool,bool)", p0, p1, p2, p3)); 1152 | } 1153 | 1154 | function log(address p0, address p1, string memory p2, string memory p3) internal pure { 1155 | _log(abi.encodeWithSignature("log(address,address,string,string)", p0, p1, p2, p3)); 1156 | } 1157 | 1158 | function log(address p0, address p1, string memory p2, uint p3) internal pure { 1159 | _log(abi.encodeWithSignature("log(address,address,string,uint)", p0, p1, p2, p3)); 1160 | } 1161 | 1162 | function log(address p0, address p1, string memory p2, address p3) internal pure { 1163 | _log(abi.encodeWithSignature("log(address,address,string,address)", p0, p1, p2, p3)); 1164 | } 1165 | 1166 | function log(address p0, address p1, string memory p2, bool p3) internal pure { 1167 | _log(abi.encodeWithSignature("log(address,address,string,bool)", p0, p1, p2, p3)); 1168 | } 1169 | 1170 | function log(address p0, address p1, uint p2, string memory p3) internal pure { 1171 | _log(abi.encodeWithSignature("log(address,address,uint,string)", p0, p1, p2, p3)); 1172 | } 1173 | 1174 | function log(address p0, address p1, uint p2, uint p3) internal pure { 1175 | _log(abi.encodeWithSignature("log(address,address,uint,uint)", p0, p1, p2, p3)); 1176 | } 1177 | 1178 | function log(address p0, address p1, uint p2, address p3) internal pure { 1179 | _log(abi.encodeWithSignature("log(address,address,uint,address)", p0, p1, p2, p3)); 1180 | } 1181 | 1182 | function log(address p0, address p1, uint p2, bool p3) internal pure { 1183 | _log(abi.encodeWithSignature("log(address,address,uint,bool)", p0, p1, p2, p3)); 1184 | } 1185 | 1186 | function log(address p0, address p1, address p2, string memory p3) internal pure { 1187 | _log(abi.encodeWithSignature("log(address,address,address,string)", p0, p1, p2, p3)); 1188 | } 1189 | 1190 | function log(address p0, address p1, address p2, uint p3) internal pure { 1191 | _log(abi.encodeWithSignature("log(address,address,address,uint)", p0, p1, p2, p3)); 1192 | } 1193 | 1194 | function log(address p0, address p1, address p2, address p3) internal pure { 1195 | _log(abi.encodeWithSignature("log(address,address,address,address)", p0, p1, p2, p3)); 1196 | } 1197 | 1198 | function log(address p0, address p1, address p2, bool p3) internal pure { 1199 | _log(abi.encodeWithSignature("log(address,address,address,bool)", p0, p1, p2, p3)); 1200 | } 1201 | 1202 | function log(address p0, address p1, bool p2, string memory p3) internal pure { 1203 | _log(abi.encodeWithSignature("log(address,address,bool,string)", p0, p1, p2, p3)); 1204 | } 1205 | 1206 | function log(address p0, address p1, bool p2, uint p3) internal pure { 1207 | _log(abi.encodeWithSignature("log(address,address,bool,uint)", p0, p1, p2, p3)); 1208 | } 1209 | 1210 | function log(address p0, address p1, bool p2, address p3) internal pure { 1211 | _log(abi.encodeWithSignature("log(address,address,bool,address)", p0, p1, p2, p3)); 1212 | } 1213 | 1214 | function log(address p0, address p1, bool p2, bool p3) internal pure { 1215 | _log(abi.encodeWithSignature("log(address,address,bool,bool)", p0, p1, p2, p3)); 1216 | } 1217 | 1218 | function log(address p0, bool p1, string memory p2, string memory p3) internal pure { 1219 | _log(abi.encodeWithSignature("log(address,bool,string,string)", p0, p1, p2, p3)); 1220 | } 1221 | 1222 | function log(address p0, bool p1, string memory p2, uint p3) internal pure { 1223 | _log(abi.encodeWithSignature("log(address,bool,string,uint)", p0, p1, p2, p3)); 1224 | } 1225 | 1226 | function log(address p0, bool p1, string memory p2, address p3) internal pure { 1227 | _log(abi.encodeWithSignature("log(address,bool,string,address)", p0, p1, p2, p3)); 1228 | } 1229 | 1230 | function log(address p0, bool p1, string memory p2, bool p3) internal pure { 1231 | _log(abi.encodeWithSignature("log(address,bool,string,bool)", p0, p1, p2, p3)); 1232 | } 1233 | 1234 | function log(address p0, bool p1, uint p2, string memory p3) internal pure { 1235 | _log(abi.encodeWithSignature("log(address,bool,uint,string)", p0, p1, p2, p3)); 1236 | } 1237 | 1238 | function log(address p0, bool p1, uint p2, uint p3) internal pure { 1239 | _log(abi.encodeWithSignature("log(address,bool,uint,uint)", p0, p1, p2, p3)); 1240 | } 1241 | 1242 | function log(address p0, bool p1, uint p2, address p3) internal pure { 1243 | _log(abi.encodeWithSignature("log(address,bool,uint,address)", p0, p1, p2, p3)); 1244 | } 1245 | 1246 | function log(address p0, bool p1, uint p2, bool p3) internal pure { 1247 | _log(abi.encodeWithSignature("log(address,bool,uint,bool)", p0, p1, p2, p3)); 1248 | } 1249 | 1250 | function log(address p0, bool p1, address p2, string memory p3) internal pure { 1251 | _log(abi.encodeWithSignature("log(address,bool,address,string)", p0, p1, p2, p3)); 1252 | } 1253 | 1254 | function log(address p0, bool p1, address p2, uint p3) internal pure { 1255 | _log(abi.encodeWithSignature("log(address,bool,address,uint)", p0, p1, p2, p3)); 1256 | } 1257 | 1258 | function log(address p0, bool p1, address p2, address p3) internal pure { 1259 | _log(abi.encodeWithSignature("log(address,bool,address,address)", p0, p1, p2, p3)); 1260 | } 1261 | 1262 | function log(address p0, bool p1, address p2, bool p3) internal pure { 1263 | _log(abi.encodeWithSignature("log(address,bool,address,bool)", p0, p1, p2, p3)); 1264 | } 1265 | 1266 | function log(address p0, bool p1, bool p2, string memory p3) internal pure { 1267 | _log(abi.encodeWithSignature("log(address,bool,bool,string)", p0, p1, p2, p3)); 1268 | } 1269 | 1270 | function log(address p0, bool p1, bool p2, uint p3) internal pure { 1271 | _log(abi.encodeWithSignature("log(address,bool,bool,uint)", p0, p1, p2, p3)); 1272 | } 1273 | 1274 | function log(address p0, bool p1, bool p2, address p3) internal pure { 1275 | _log(abi.encodeWithSignature("log(address,bool,bool,address)", p0, p1, p2, p3)); 1276 | } 1277 | 1278 | function log(address p0, bool p1, bool p2, bool p3) internal pure { 1279 | _log(abi.encodeWithSignature("log(address,bool,bool,bool)", p0, p1, p2, p3)); 1280 | } 1281 | 1282 | function log(bool p0, string memory p1, string memory p2, string memory p3) internal pure { 1283 | _log(abi.encodeWithSignature("log(bool,string,string,string)", p0, p1, p2, p3)); 1284 | } 1285 | 1286 | function log(bool p0, string memory p1, string memory p2, uint p3) internal pure { 1287 | _log(abi.encodeWithSignature("log(bool,string,string,uint)", p0, p1, p2, p3)); 1288 | } 1289 | 1290 | function log(bool p0, string memory p1, string memory p2, address p3) internal pure { 1291 | _log(abi.encodeWithSignature("log(bool,string,string,address)", p0, p1, p2, p3)); 1292 | } 1293 | 1294 | function log(bool p0, string memory p1, string memory p2, bool p3) internal pure { 1295 | _log(abi.encodeWithSignature("log(bool,string,string,bool)", p0, p1, p2, p3)); 1296 | } 1297 | 1298 | function log(bool p0, string memory p1, uint p2, string memory p3) internal pure { 1299 | _log(abi.encodeWithSignature("log(bool,string,uint,string)", p0, p1, p2, p3)); 1300 | } 1301 | 1302 | function log(bool p0, string memory p1, uint p2, uint p3) internal pure { 1303 | _log(abi.encodeWithSignature("log(bool,string,uint,uint)", p0, p1, p2, p3)); 1304 | } 1305 | 1306 | function log(bool p0, string memory p1, uint p2, address p3) internal pure { 1307 | _log(abi.encodeWithSignature("log(bool,string,uint,address)", p0, p1, p2, p3)); 1308 | } 1309 | 1310 | function log(bool p0, string memory p1, uint p2, bool p3) internal pure { 1311 | _log(abi.encodeWithSignature("log(bool,string,uint,bool)", p0, p1, p2, p3)); 1312 | } 1313 | 1314 | function log(bool p0, string memory p1, address p2, string memory p3) internal pure { 1315 | _log(abi.encodeWithSignature("log(bool,string,address,string)", p0, p1, p2, p3)); 1316 | } 1317 | 1318 | function log(bool p0, string memory p1, address p2, uint p3) internal pure { 1319 | _log(abi.encodeWithSignature("log(bool,string,address,uint)", p0, p1, p2, p3)); 1320 | } 1321 | 1322 | function log(bool p0, string memory p1, address p2, address p3) internal pure { 1323 | _log(abi.encodeWithSignature("log(bool,string,address,address)", p0, p1, p2, p3)); 1324 | } 1325 | 1326 | function log(bool p0, string memory p1, address p2, bool p3) internal pure { 1327 | _log(abi.encodeWithSignature("log(bool,string,address,bool)", p0, p1, p2, p3)); 1328 | } 1329 | 1330 | function log(bool p0, string memory p1, bool p2, string memory p3) internal pure { 1331 | _log(abi.encodeWithSignature("log(bool,string,bool,string)", p0, p1, p2, p3)); 1332 | } 1333 | 1334 | function log(bool p0, string memory p1, bool p2, uint p3) internal pure { 1335 | _log(abi.encodeWithSignature("log(bool,string,bool,uint)", p0, p1, p2, p3)); 1336 | } 1337 | 1338 | function log(bool p0, string memory p1, bool p2, address p3) internal pure { 1339 | _log(abi.encodeWithSignature("log(bool,string,bool,address)", p0, p1, p2, p3)); 1340 | } 1341 | 1342 | function log(bool p0, string memory p1, bool p2, bool p3) internal pure { 1343 | _log(abi.encodeWithSignature("log(bool,string,bool,bool)", p0, p1, p2, p3)); 1344 | } 1345 | 1346 | function log(bool p0, uint p1, string memory p2, string memory p3) internal pure { 1347 | _log(abi.encodeWithSignature("log(bool,uint,string,string)", p0, p1, p2, p3)); 1348 | } 1349 | 1350 | function log(bool p0, uint p1, string memory p2, uint p3) internal pure { 1351 | _log(abi.encodeWithSignature("log(bool,uint,string,uint)", p0, p1, p2, p3)); 1352 | } 1353 | 1354 | function log(bool p0, uint p1, string memory p2, address p3) internal pure { 1355 | _log(abi.encodeWithSignature("log(bool,uint,string,address)", p0, p1, p2, p3)); 1356 | } 1357 | 1358 | function log(bool p0, uint p1, string memory p2, bool p3) internal pure { 1359 | _log(abi.encodeWithSignature("log(bool,uint,string,bool)", p0, p1, p2, p3)); 1360 | } 1361 | 1362 | function log(bool p0, uint p1, uint p2, string memory p3) internal pure { 1363 | _log(abi.encodeWithSignature("log(bool,uint,uint,string)", p0, p1, p2, p3)); 1364 | } 1365 | 1366 | function log(bool p0, uint p1, uint p2, uint p3) internal pure { 1367 | _log(abi.encodeWithSignature("log(bool,uint,uint,uint)", p0, p1, p2, p3)); 1368 | } 1369 | 1370 | function log(bool p0, uint p1, uint p2, address p3) internal pure { 1371 | _log(abi.encodeWithSignature("log(bool,uint,uint,address)", p0, p1, p2, p3)); 1372 | } 1373 | 1374 | function log(bool p0, uint p1, uint p2, bool p3) internal pure { 1375 | _log(abi.encodeWithSignature("log(bool,uint,uint,bool)", p0, p1, p2, p3)); 1376 | } 1377 | 1378 | function log(bool p0, uint p1, address p2, string memory p3) internal pure { 1379 | _log(abi.encodeWithSignature("log(bool,uint,address,string)", p0, p1, p2, p3)); 1380 | } 1381 | 1382 | function log(bool p0, uint p1, address p2, uint p3) internal pure { 1383 | _log(abi.encodeWithSignature("log(bool,uint,address,uint)", p0, p1, p2, p3)); 1384 | } 1385 | 1386 | function log(bool p0, uint p1, address p2, address p3) internal pure { 1387 | _log(abi.encodeWithSignature("log(bool,uint,address,address)", p0, p1, p2, p3)); 1388 | } 1389 | 1390 | function log(bool p0, uint p1, address p2, bool p3) internal pure { 1391 | _log(abi.encodeWithSignature("log(bool,uint,address,bool)", p0, p1, p2, p3)); 1392 | } 1393 | 1394 | function log(bool p0, uint p1, bool p2, string memory p3) internal pure { 1395 | _log(abi.encodeWithSignature("log(bool,uint,bool,string)", p0, p1, p2, p3)); 1396 | } 1397 | 1398 | function log(bool p0, uint p1, bool p2, uint p3) internal pure { 1399 | _log(abi.encodeWithSignature("log(bool,uint,bool,uint)", p0, p1, p2, p3)); 1400 | } 1401 | 1402 | function log(bool p0, uint p1, bool p2, address p3) internal pure { 1403 | _log(abi.encodeWithSignature("log(bool,uint,bool,address)", p0, p1, p2, p3)); 1404 | } 1405 | 1406 | function log(bool p0, uint p1, bool p2, bool p3) internal pure { 1407 | _log(abi.encodeWithSignature("log(bool,uint,bool,bool)", p0, p1, p2, p3)); 1408 | } 1409 | 1410 | function log(bool p0, address p1, string memory p2, string memory p3) internal pure { 1411 | _log(abi.encodeWithSignature("log(bool,address,string,string)", p0, p1, p2, p3)); 1412 | } 1413 | 1414 | function log(bool p0, address p1, string memory p2, uint p3) internal pure { 1415 | _log(abi.encodeWithSignature("log(bool,address,string,uint)", p0, p1, p2, p3)); 1416 | } 1417 | 1418 | function log(bool p0, address p1, string memory p2, address p3) internal pure { 1419 | _log(abi.encodeWithSignature("log(bool,address,string,address)", p0, p1, p2, p3)); 1420 | } 1421 | 1422 | function log(bool p0, address p1, string memory p2, bool p3) internal pure { 1423 | _log(abi.encodeWithSignature("log(bool,address,string,bool)", p0, p1, p2, p3)); 1424 | } 1425 | 1426 | function log(bool p0, address p1, uint p2, string memory p3) internal pure { 1427 | _log(abi.encodeWithSignature("log(bool,address,uint,string)", p0, p1, p2, p3)); 1428 | } 1429 | 1430 | function log(bool p0, address p1, uint p2, uint p3) internal pure { 1431 | _log(abi.encodeWithSignature("log(bool,address,uint,uint)", p0, p1, p2, p3)); 1432 | } 1433 | 1434 | function log(bool p0, address p1, uint p2, address p3) internal pure { 1435 | _log(abi.encodeWithSignature("log(bool,address,uint,address)", p0, p1, p2, p3)); 1436 | } 1437 | 1438 | function log(bool p0, address p1, uint p2, bool p3) internal pure { 1439 | _log(abi.encodeWithSignature("log(bool,address,uint,bool)", p0, p1, p2, p3)); 1440 | } 1441 | 1442 | function log(bool p0, address p1, address p2, string memory p3) internal pure { 1443 | _log(abi.encodeWithSignature("log(bool,address,address,string)", p0, p1, p2, p3)); 1444 | } 1445 | 1446 | function log(bool p0, address p1, address p2, uint p3) internal pure { 1447 | _log(abi.encodeWithSignature("log(bool,address,address,uint)", p0, p1, p2, p3)); 1448 | } 1449 | 1450 | function log(bool p0, address p1, address p2, address p3) internal pure { 1451 | _log(abi.encodeWithSignature("log(bool,address,address,address)", p0, p1, p2, p3)); 1452 | } 1453 | 1454 | function log(bool p0, address p1, address p2, bool p3) internal pure { 1455 | _log(abi.encodeWithSignature("log(bool,address,address,bool)", p0, p1, p2, p3)); 1456 | } 1457 | 1458 | function log(bool p0, address p1, bool p2, string memory p3) internal pure { 1459 | _log(abi.encodeWithSignature("log(bool,address,bool,string)", p0, p1, p2, p3)); 1460 | } 1461 | 1462 | function log(bool p0, address p1, bool p2, uint p3) internal pure { 1463 | _log(abi.encodeWithSignature("log(bool,address,bool,uint)", p0, p1, p2, p3)); 1464 | } 1465 | 1466 | function log(bool p0, address p1, bool p2, address p3) internal pure { 1467 | _log(abi.encodeWithSignature("log(bool,address,bool,address)", p0, p1, p2, p3)); 1468 | } 1469 | 1470 | function log(bool p0, address p1, bool p2, bool p3) internal pure { 1471 | _log(abi.encodeWithSignature("log(bool,address,bool,bool)", p0, p1, p2, p3)); 1472 | } 1473 | 1474 | function log(bool p0, bool p1, string memory p2, string memory p3) internal pure { 1475 | _log(abi.encodeWithSignature("log(bool,bool,string,string)", p0, p1, p2, p3)); 1476 | } 1477 | 1478 | function log(bool p0, bool p1, string memory p2, uint p3) internal pure { 1479 | _log(abi.encodeWithSignature("log(bool,bool,string,uint)", p0, p1, p2, p3)); 1480 | } 1481 | 1482 | function log(bool p0, bool p1, string memory p2, address p3) internal pure { 1483 | _log(abi.encodeWithSignature("log(bool,bool,string,address)", p0, p1, p2, p3)); 1484 | } 1485 | 1486 | function log(bool p0, bool p1, string memory p2, bool p3) internal pure { 1487 | _log(abi.encodeWithSignature("log(bool,bool,string,bool)", p0, p1, p2, p3)); 1488 | } 1489 | 1490 | function log(bool p0, bool p1, uint p2, string memory p3) internal pure { 1491 | _log(abi.encodeWithSignature("log(bool,bool,uint,string)", p0, p1, p2, p3)); 1492 | } 1493 | 1494 | function log(bool p0, bool p1, uint p2, uint p3) internal pure { 1495 | _log(abi.encodeWithSignature("log(bool,bool,uint,uint)", p0, p1, p2, p3)); 1496 | } 1497 | 1498 | function log(bool p0, bool p1, uint p2, address p3) internal pure { 1499 | _log(abi.encodeWithSignature("log(bool,bool,uint,address)", p0, p1, p2, p3)); 1500 | } 1501 | 1502 | function log(bool p0, bool p1, uint p2, bool p3) internal pure { 1503 | _log(abi.encodeWithSignature("log(bool,bool,uint,bool)", p0, p1, p2, p3)); 1504 | } 1505 | 1506 | function log(bool p0, bool p1, address p2, string memory p3) internal pure { 1507 | _log(abi.encodeWithSignature("log(bool,bool,address,string)", p0, p1, p2, p3)); 1508 | } 1509 | 1510 | function log(bool p0, bool p1, address p2, uint p3) internal pure { 1511 | _log(abi.encodeWithSignature("log(bool,bool,address,uint)", p0, p1, p2, p3)); 1512 | } 1513 | 1514 | function log(bool p0, bool p1, address p2, address p3) internal pure { 1515 | _log(abi.encodeWithSignature("log(bool,bool,address,address)", p0, p1, p2, p3)); 1516 | } 1517 | 1518 | function log(bool p0, bool p1, address p2, bool p3) internal pure { 1519 | _log(abi.encodeWithSignature("log(bool,bool,address,bool)", p0, p1, p2, p3)); 1520 | } 1521 | 1522 | function log(bool p0, bool p1, bool p2, string memory p3) internal pure { 1523 | _log(abi.encodeWithSignature("log(bool,bool,bool,string)", p0, p1, p2, p3)); 1524 | } 1525 | 1526 | function log(bool p0, bool p1, bool p2, uint p3) internal pure { 1527 | _log(abi.encodeWithSignature("log(bool,bool,bool,uint)", p0, p1, p2, p3)); 1528 | } 1529 | 1530 | function log(bool p0, bool p1, bool p2, address p3) internal pure { 1531 | _log(abi.encodeWithSignature("log(bool,bool,bool,address)", p0, p1, p2, p3)); 1532 | } 1533 | 1534 | function log(bool p0, bool p1, bool p2, bool p3) internal pure { 1535 | _log(abi.encodeWithSignature("log(bool,bool,bool,bool)", p0, p1, p2, p3)); 1536 | } 1537 | } 1538 | --------------------------------------------------------------------------------