├── .gitignore ├── go.mod ├── LICENSE ├── utils.go ├── readme.md ├── main.go ├── go.sum └── abis └── EntryPoint.go /.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | .idea -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module erc4337-mev-searcher-bot 2 | 3 | go 1.16 4 | 5 | require ( 6 | github.com/ethereum/go-ethereum v1.10.16 7 | github.com/joho/godotenv v1.4.0 8 | github.com/miguelmota/go-ethereum-hdwallet v0.1.1 9 | ) 10 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Kristof Gazso 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 | -------------------------------------------------------------------------------- /utils.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "context" 5 | "crypto/ecdsa" 6 | "fmt" 7 | "github.com/ethereum/go-ethereum/common" 8 | "github.com/ethereum/go-ethereum/consensus/misc" 9 | "github.com/ethereum/go-ethereum/crypto" 10 | "github.com/ethereum/go-ethereum/ethclient" 11 | "github.com/ethereum/go-ethereum/rpc" 12 | "github.com/joho/godotenv" 13 | "log" 14 | "math/big" 15 | "os" 16 | ) 17 | 18 | func InitWallet() Wallet { 19 | godotenv.Load() 20 | privateKeyString := os.Getenv("PRIVATE_KEY") 21 | 22 | pk, err := crypto.HexToECDSA(privateKeyString) 23 | if err != nil { 24 | fmt.Println("Failed to decode private key, make sure you do not put 0x in front of the hex") 25 | log.Fatal(err) 26 | } 27 | pubZk := pk.Public() 28 | pubZkECDSA := pubZk.(*ecdsa.PublicKey) 29 | address := crypto.PubkeyToAddress(*pubZkECDSA) 30 | 31 | return Wallet{ 32 | PK: pk, 33 | Address: address, 34 | } 35 | } 36 | 37 | type Wallet struct { 38 | PK *ecdsa.PrivateKey 39 | Address common.Address 40 | } 41 | 42 | func InitClients() (*rpc.Client, *ethclient.Client){ 43 | rpcClient, err := rpc.Dial("ws://localhost:8546") 44 | if err != nil { 45 | log.Fatal(err) 46 | } 47 | 48 | client, err := ethclient.Dial("http://localhost:8545") 49 | if err != nil { 50 | log.Fatal(err) 51 | } 52 | 53 | return rpcClient, client 54 | } 55 | 56 | func GetBaseFee(client *ethclient.Client) *big.Int { 57 | latestBlock, _ := client.BlockByNumber(context.Background(), nil) 58 | return misc.CalcBaseFee(configToUse, latestBlock.Header()) 59 | } 60 | 61 | func GoodEntryPoint(ep common.Address) bool { 62 | goodEntryPoint := false 63 | for _, safeEp := range safeEntryPoints { 64 | if safeEp == ep { 65 | goodEntryPoint = true 66 | break 67 | } 68 | } 69 | return goodEntryPoint 70 | } -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Searcher Bot for ERC-4337 2 | 3 | Disclaimer: This is only built for Goerli for now, ERC-4337 for Mainnet will come Soon™. But better to prepare yourself for when it arrives 4 | 5 | Disclaimer: I take no responsibility for whatever you do with this. Definitely not audited and there aren't even any unit tests. Use a seperate private key with only Goerli ETH on it, don't be dumb. 6 | 7 | 8 | ## Explainer 9 | 10 | [ERC-4337](https://eips.ethereum.org/EIPS/eip-4337) is a proposal to enable account abstraction on Ethereum without requiring a hard-fork. 11 | 12 | It builds on top of the already existing mempool, creating the concept of `User Operation` objects. 13 | 14 | These `User Operation` objects must be routed through an appropriate [EntryPoint smart contract](https://github.com/eth-infinitism/account-abstraction/blob/main/contracts/EntryPoint.sol) by bundlers, which will ensure that the wallet dealing with the `User Operation` compensates the bundler for including the `User Operation`. 15 | 16 | Most `User Operation` objects will usually only succeed when routed through the EntryPoint they were meant for. 17 | 18 | The way these `User Operation` objects are broadcast is via p2p, on a separate protocol. The [Nethermind](https://github.com/NethermindEth/nethermind) client has full support for this protocol. 19 | 20 | By bundling `User Operation` objects into transactions and submitting them on chain, you can be compensated if the `User Operation` fee is high enough. Beware, the Nethermind Goerli Validator is also trying to bundle and submit transactions, however it will only do so when it is its turn to propose a new block. By running a script like this, you can usually include the `User Operation` yourself and claim the fee. 21 | 22 | ## How to run this script 23 | 24 | First, you must download and build the latest version of [Nethermind](https://github.com/NethermindEth/nethermind). 25 | 26 | Then, run it with the config `goerli_aa` to enable the `User Operation` pool, the relevant p2p protocol and websocket subscriptions. 27 | 28 | Wait for it to sync to Goerli head (including the state sync), this may take a bit 29 | 30 | 31 | Fill in the .env file with the PRIVATE_KEY env variable, without the 0x at the start. This wallet will be used to bundle and send. Make sure it has Goerli ETH on it. 32 | 33 | Then, build and run this go script. This script will subscribe to any new `User Operation` objects entering the Nethermind node's pool, and submit them on chain if they pay enough. 34 | 35 | WARNING: The logic to only submit if the `User Operation` fee is high enough is turned off, since this is Goerli and it is useful for testing. 36 | 37 | You can submit `User Operation` objects yourself for testing with the help of [this](https://medium.com/nethermind-eth/erc-4337-account-abstraction-is-already-here-e9588b789e15) article. -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "context" 5 | "erc4337-mev-searcher-bot/abis" 6 | "github.com/ethereum/go-ethereum/accounts/abi/bind" 7 | "github.com/ethereum/go-ethereum/common" 8 | "github.com/ethereum/go-ethereum/common/hexutil" 9 | "github.com/ethereum/go-ethereum/common/math" 10 | "github.com/ethereum/go-ethereum/ethclient" 11 | "github.com/ethereum/go-ethereum/params" 12 | "github.com/ethereum/go-ethereum/rpc" 13 | "log" 14 | "math/big" 15 | ) 16 | 17 | var ( 18 | safeEntryPoints = []common.Address{ 19 | common.HexToAddress("0x602ab3881ff3fa8da60a8f44cf633e91ba1fdb69"), 20 | common.HexToAddress("0xD3ebD80aFf10B54795708Ece1d6D3253e3258A05"), 21 | } 22 | httpClient *ethclient.Client 23 | rpcClient *rpc.Client 24 | wallet Wallet 25 | chainId *big.Int 26 | configToUse = params.GoerliChainConfig 27 | ) 28 | 29 | /* 30 | type UserOperation struct { 31 | Sender common.Address 32 | Nonce *big.Int 33 | InitCode []byte 34 | CallData []byte 35 | CallGas *big.Int 36 | VerificationGas *big.Int 37 | PreVerificationGas *big.Int 38 | MaxFeePerGas *big.Int `abi:"maxFeePerGas"` 39 | MaxPriorityFeePerGas *big.Int `abi:"maxPriorityFeePerGas"` 40 | Paymaster common.Address 41 | PaymasterData []byte 42 | Signature []byte 43 | } 44 | */ 45 | 46 | type UserOperationWithEntryPoint struct { 47 | UserOperation abis.UserOperation 48 | EntryPoint common.Address 49 | } 50 | 51 | type UserOperationJSON struct { 52 | UserOperation struct { 53 | Sender common.Address `json:"sender"` 54 | Nonce string `json:"nonce"` 55 | CallData string `json:"callData"` 56 | InitCode string `json:"initCode"` 57 | CallGas string `json:"callGas"` 58 | VerificationGas string `json:"verificationGas"` 59 | PreVerificationGas string `json:"preVerificationGas"` 60 | MaxFeePerGas string `json:"maxFeePerGas"` 61 | MaxPriorityFeePerGas string `json:"maxPriorityFeePerGas"` 62 | Paymaster common.Address `json:"paymaster"` 63 | Signature string `json:"signature"` 64 | PaymasterData string `json:"paymasterData"` 65 | } `json:"userOperation"` 66 | EntryPoint common.Address `json:"entryPoint"` 67 | } 68 | 69 | func main() { 70 | wallet = InitWallet() 71 | rpcClient, httpClient = InitClients() 72 | chainId, _ = httpClient.ChainID(context.Background()) 73 | 74 | // make websocket subscription 75 | opJSONchannel := make(chan UserOperationJSON, 100) 76 | extraParam := make(map[string]interface{}) 77 | extraParam["entryPoints"] = safeEntryPoints 78 | extraParam["includeUserOperations"] = true 79 | sub, err := rpcClient.EthSubscribe( 80 | context.Background(), 81 | opJSONchannel, 82 | "newPendingUserOperations", 83 | extraParam, 84 | ) 85 | if err != nil { 86 | log.Fatal(err) 87 | } 88 | 89 | for jsonOp := range opJSONchannel { 90 | op := ConvertFromJSONToNative(jsonOp) 91 | HandleOp(op) 92 | } 93 | 94 | sub.Unsubscribe() 95 | } 96 | 97 | 98 | func HandleOp(opWithEp UserOperationWithEntryPoint) { 99 | op := opWithEp.UserOperation 100 | ep := opWithEp.EntryPoint 101 | 102 | log.Printf("new pending op with sender %s and nonce %s\n", op.Sender, op.Nonce) 103 | 104 | if !GoodEntryPoint(ep) { 105 | return 106 | } 107 | 108 | log.Printf("pending op has safe entryPoint %s\n", ep) 109 | 110 | 111 | entryPointAbi, err := abis.NewEntryPoint(ep, httpClient) 112 | if err != nil { 113 | log.Fatal(err) 114 | } 115 | 116 | auth, err := bind.NewKeyedTransactorWithChainID(wallet.PK, chainId) 117 | if err != nil { 118 | log.Fatal(err) 119 | } 120 | 121 | auth.GasTipCap = big.NewInt(3e9) 122 | auth.GasFeeCap = big.NewInt(100e9) // YOU SHOULD PROBABLY OPTIMIZE THIS 123 | 124 | baseFee := GetBaseFee(httpClient) 125 | effectiveGasPrice := math.BigMin(new(big.Int).Add(op.MaxPriorityFeePerGas, baseFee), op.MaxFeePerGas) 126 | 127 | if auth.GasFeeCap.Cmp(effectiveGasPrice) > 0 { 128 | log.Printf("op doesn't pay enough, op effective gas price: %s, tx gas price: %s\n", effectiveGasPrice, auth.GasPrice) 129 | // we would lose money, so normally we would not submit it normally but this is good for testing 130 | // return 131 | log.Printf("but we are submitting anyway to test\n") 132 | } else { 133 | log.Printf("op fee adequate, op effective gas price: %s, tx gas price: %s\n", effectiveGasPrice, auth.GasPrice) 134 | } 135 | 136 | 137 | tx, err := entryPointAbi.HandleOps(auth, []abis.UserOperation{op}, wallet.Address) 138 | if err != nil { 139 | log.Fatal(err) 140 | } 141 | 142 | log.Println("Submitted op tx with hash", tx.Hash()) 143 | 144 | rcp, err := bind.WaitMined(context.Background(), httpClient, tx) 145 | if err != nil { 146 | log.Fatal(err) 147 | } 148 | 149 | if rcp.Status == 1 { 150 | log.Println("Success!") 151 | } else { 152 | log.Println("Failure!") 153 | } 154 | } 155 | 156 | func ConvertFromJSONToNative(json UserOperationJSON) UserOperationWithEntryPoint { 157 | nonce, _ := hexutil.DecodeBig(json.UserOperation.Nonce) 158 | initCode, _ := hexutil.Decode(json.UserOperation.InitCode) 159 | callData, _ := hexutil.Decode(json.UserOperation.CallData) 160 | callGas, _ := hexutil.DecodeBig(json.UserOperation.CallGas) 161 | verificationGas, _ := hexutil.DecodeBig(json.UserOperation.VerificationGas) 162 | preVerificationGas, _ := hexutil.DecodeBig(json.UserOperation.PreVerificationGas) 163 | maxFeePerGas, _ := hexutil.DecodeBig(json.UserOperation.MaxFeePerGas) 164 | maxPriorityFeePerGas, _ := hexutil.DecodeBig(json.UserOperation.MaxPriorityFeePerGas) 165 | paymasterData, _ := hexutil.Decode(json.UserOperation.PaymasterData) 166 | signature, _ := hexutil.Decode(json.UserOperation.Signature) 167 | 168 | return UserOperationWithEntryPoint{ 169 | UserOperation: abis.UserOperation{ 170 | Sender: json.UserOperation.Sender, 171 | Nonce: nonce, 172 | InitCode: initCode, 173 | CallData: callData, 174 | CallGas: callGas, 175 | VerificationGas: verificationGas, 176 | PreVerificationGas: preVerificationGas, 177 | MaxFeePerGas: maxFeePerGas, 178 | MaxPriorityFeePerGas: maxPriorityFeePerGas, 179 | Paymaster: json.UserOperation.Paymaster, 180 | PaymasterData: paymasterData, 181 | Signature: signature, 182 | }, 183 | EntryPoint: json.EntryPoint, 184 | } 185 | } 186 | 187 | -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= 2 | cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= 3 | cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= 4 | cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= 5 | cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= 6 | cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= 7 | cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= 8 | cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= 9 | cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= 10 | cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw= 11 | cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= 12 | cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= 13 | cloud.google.com/go/bigtable v1.2.0/go.mod h1:JcVAOl45lrTmQfLj7T6TxyMzIN/3FGGcFm+2xVAli2o= 14 | cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= 15 | cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= 16 | cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= 17 | cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= 18 | cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= 19 | collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE= 20 | dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= 21 | github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4= 22 | github.com/Azure/azure-pipeline-go v0.2.2/go.mod h1:4rQ/NZncSvGqNkkOsNpOU1tgoNuIlp9AfUH5G1tvCHc= 23 | github.com/Azure/azure-storage-blob-go v0.7.0/go.mod h1:f9YQKtsG1nMisotuTPpO0tjNuEjKRYAcJU8/ydDI++4= 24 | github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= 25 | github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= 26 | github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= 27 | github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= 28 | github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= 29 | github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= 30 | github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= 31 | github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= 32 | github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= 33 | github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= 34 | github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= 35 | github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= 36 | github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= 37 | github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= 38 | github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6 h1:fLjPD/aNc3UIOA6tDi6QXUemppXK3P9BI7mr2hd6gx8= 39 | github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= 40 | github.com/VictoriaMetrics/fastcache v1.6.0 h1:C/3Oi3EiBCqufydp1neRZkqcwmEiuRT9c3fqvvgKm5o= 41 | github.com/VictoriaMetrics/fastcache v1.6.0/go.mod h1:0qHz5QP0GMX4pfmMA/zt5RgfNuXJrTP0zS7DqpHGGTw= 42 | github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= 43 | github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= 44 | github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= 45 | github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= 46 | github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= 47 | github.com/allegro/bigcache v1.2.1/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= 48 | github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= 49 | github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0= 50 | github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo= 51 | github.com/aws/aws-sdk-go-v2/config v1.1.1/go.mod h1:0XsVy9lBI/BCXm+2Tuvt39YmdHwS5unDQmxZOYe8F5Y= 52 | github.com/aws/aws-sdk-go-v2/credentials v1.1.1/go.mod h1:mM2iIjwl7LULWtS6JCACyInboHirisUUdkBPoTHMOUo= 53 | github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2/go.mod h1:3hGg3PpiEjHnrkrlasTfxFqUsZ2GCk/fMUn4CbKgSkM= 54 | github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2/go.mod h1:45MfaXZ0cNbeuT0KQ1XJylq8A6+OpVV2E5kvY/Kq+u8= 55 | github.com/aws/aws-sdk-go-v2/service/route53 v1.1.1/go.mod h1:rLiOUrPLW/Er5kRcQ7NkwbjlijluLsrIbu/iyl35RO4= 56 | github.com/aws/aws-sdk-go-v2/service/sso v1.1.1/go.mod h1:SuZJxklHxLAXgLTc1iFXbEWkXs7QRTQpCLGaKIprQW0= 57 | github.com/aws/aws-sdk-go-v2/service/sts v1.1.1/go.mod h1:Wi0EBZwiz/K44YliU0EKxqTCJGUfYTWXrrBwkq736bM= 58 | github.com/aws/smithy-go v1.1.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw= 59 | github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= 60 | github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= 61 | github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= 62 | github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= 63 | github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= 64 | github.com/btcsuite/btcd v0.21.0-beta h1:At9hIZdJW0s9E/fAz28nrz6AmcNlSVucCH796ZteX1M= 65 | github.com/btcsuite/btcd v0.21.0-beta/go.mod h1:ZSWyehm27aAuS9bvkATT+Xte3hjHZ+MRgMY/8NJ7K94= 66 | github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= 67 | github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= 68 | github.com/btcsuite/btcutil v1.0.2/go.mod h1:j9HUFwoQRsZL3V4n+qG+CUnEGHOarIxfC3Le2Yhbcts= 69 | github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce h1:YtWJF7RHm2pYCvA5t0RPmAaLUhREsKuKd+SLhxFbFeQ= 70 | github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce/go.mod h1:0DVlHczLPewLcPGEIeUEzfOJhqGPQ0mJJRDBtD307+o= 71 | github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= 72 | github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= 73 | github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= 74 | github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= 75 | github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= 76 | github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= 77 | github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= 78 | github.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34= 79 | github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= 80 | github.com/cespare/cp v0.1.0 h1:SE+dxFebS7Iik5LK0tsi1k9ZCxEaFX4AjQmoyA+1dJk= 81 | github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= 82 | github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= 83 | github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= 84 | github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= 85 | github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= 86 | github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= 87 | github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= 88 | github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= 89 | github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= 90 | github.com/cloudflare/cloudflare-go v0.14.0/go.mod h1:EnwdgGMaFOruiPZRFSgn+TsQ3hQ7C/YWzIGLeu5c304= 91 | github.com/consensys/bavard v0.1.8-0.20210406032232-f3452dc9b572/go.mod h1:Bpd0/3mZuaj6Sj+PqrmIquiOKy397AKGThQPaGzNXAQ= 92 | github.com/consensys/gnark-crypto v0.4.1-0.20210426202927-39ac3d4b3f1f/go.mod h1:815PAHg3wvysy0SyIqanF8gZ0Y1wjk/hrDHD/iT88+Q= 93 | github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= 94 | github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= 95 | github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= 96 | github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= 97 | github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 98 | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 99 | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= 100 | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 101 | github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= 102 | github.com/deckarep/golang-set v1.8.0 h1:sk9/l/KqpunDwP7pSjUg0keiOOLEnOBHzykLrsPppp4= 103 | github.com/deckarep/golang-set v1.8.0/go.mod h1:5nI87KwE7wgsBU1F4GKAw2Qod7p5kyS383rP6+o6qqo= 104 | github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= 105 | github.com/deepmap/oapi-codegen v1.6.0/go.mod h1:ryDa9AgbELGeB+YEXE1dR53yAjHwFvE9iAUlWl9Al3M= 106 | github.com/deepmap/oapi-codegen v1.8.2/go.mod h1:YLgSKSDv/bZQB7N4ws6luhozi3cEdRktEqrX88CvjIw= 107 | github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= 108 | github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ= 109 | github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= 110 | github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= 111 | github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= 112 | github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= 113 | github.com/dop251/goja v0.0.0-20200721192441-a695b0cdd498/go.mod h1:Mw6PkjjMXWbTj+nnj4s3QPXq1jaT0s5pC0iFD4+BOAA= 114 | github.com/dop251/goja v0.0.0-20211011172007-d99e4b8cbf48/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk= 115 | github.com/dop251/goja_nodejs v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA7c8pLvoGndExHudxTDKZ84Pyvv+90pbBjbTz0Y= 116 | github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts= 117 | github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw= 118 | github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= 119 | github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= 120 | github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= 121 | github.com/ethereum/go-ethereum v1.10.4/go.mod h1:nEE0TP5MtxGzOMd7egIrbPJMQBnhVU3ELNxhBglIzhg= 122 | github.com/ethereum/go-ethereum v1.10.16 h1:3oPrumn0bCW/idjcxMn5YYVCdK7VzJYIvwGZUGLEaoc= 123 | github.com/ethereum/go-ethereum v1.10.16/go.mod h1:Anj6cxczl+AHy63o4X9O8yWNHuN5wMpfb8MAnHkWn7Y= 124 | github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= 125 | github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 h1:FtmdgXiUlNeRsoNMFlKLDt+S+6hbjVMEW6RGQ7aUf7c= 126 | github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= 127 | github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= 128 | github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= 129 | github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= 130 | github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff h1:tY80oXqGNY4FhTFhk+o9oFHGINQ/+vhlm8HFzi6znCI= 131 | github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= 132 | github.com/getkin/kin-openapi v0.53.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= 133 | github.com/getkin/kin-openapi v0.61.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= 134 | github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= 135 | github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= 136 | github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= 137 | github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs= 138 | github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= 139 | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= 140 | github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= 141 | github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= 142 | github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= 143 | github.com/go-ole/go-ole v1.2.1 h1:2lOsA72HgjxAuMlKpFiCbHTvu44PIVkZ5hqm3RSdI/E= 144 | github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= 145 | github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= 146 | github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= 147 | github.com/go-sourcemap/sourcemap v2.1.2+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= 148 | github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= 149 | github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= 150 | github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= 151 | github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= 152 | github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= 153 | github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= 154 | github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= 155 | github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= 156 | github.com/golang/geo v0.0.0-20190916061304-5b978397cfec/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= 157 | github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= 158 | github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= 159 | github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= 160 | github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= 161 | github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= 162 | github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= 163 | github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 164 | github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 165 | github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 166 | github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= 167 | github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= 168 | github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= 169 | github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= 170 | github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= 171 | github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= 172 | github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= 173 | github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= 174 | github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= 175 | github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= 176 | github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= 177 | github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= 178 | github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= 179 | github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= 180 | github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= 181 | github.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= 182 | github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= 183 | github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= 184 | github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= 185 | github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 186 | github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 187 | github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 188 | github.com/google/gofuzz v1.1.1-0.20200604201612-c04b05f3adfa/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= 189 | github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= 190 | github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= 191 | github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= 192 | github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= 193 | github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= 194 | github.com/google/uuid v1.1.5 h1:kxhtnfFVi+rYdOALN0B3k9UT86zVJKfBimRaciULW4I= 195 | github.com/google/uuid v1.1.5/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= 196 | github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= 197 | github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= 198 | github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= 199 | github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= 200 | github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= 201 | github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= 202 | github.com/graph-gophers/graphql-go v0.0.0-20201113091052-beb923fada29/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= 203 | github.com/graph-gophers/graphql-go v1.3.0/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= 204 | github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpxn4uE= 205 | github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= 206 | github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= 207 | github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= 208 | github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d h1:dg1dEPuWpEqDnvIw251EVy4zlP8gWbsGj4BsUKCRpYs= 209 | github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= 210 | github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= 211 | github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= 212 | github.com/holiman/uint256 v1.2.0 h1:gpSYcPLWGv4sG43I2mVLiDZCNDh/EpGjSk8tmtxitHM= 213 | github.com/holiman/uint256 v1.2.0/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw= 214 | github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= 215 | github.com/huin/goupnp v1.0.1-0.20210310174557-0ca763054c88/go.mod h1:nNs7wvRfN1eKaMknBydLNQU6146XQim8t4h+q90biWo= 216 | github.com/huin/goupnp v1.0.2 h1:RfGLP+h3mvisuWEyybxNq5Eft3NWhHLPeUN72kpKZoI= 217 | github.com/huin/goupnp v1.0.2/go.mod h1:0dxJBVBHqTMjIUMkESDTNgOOx/Mw5wYIfyFmdzSamkM= 218 | github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= 219 | github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= 220 | github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= 221 | github.com/influxdata/flux v0.65.1/go.mod h1:J754/zds0vvpfwuq7Gc2wRdVwEodfpCFM7mYlOw2LqY= 222 | github.com/influxdata/influxdb v1.8.3/go.mod h1:JugdFhsvvI8gadxOI6noqNeeBHvWNTbfYGtiAn+2jhI= 223 | github.com/influxdata/influxdb-client-go/v2 v2.4.0/go.mod h1:vLNHdxTJkIf2mSLvGrpj8TCcISApPoXkaxP8g9uRlW8= 224 | github.com/influxdata/influxql v1.1.1-0.20200828144457-65d3ef77d385/go.mod h1:gHp9y86a/pxhjJ+zMjNXiQAA197Xk9wLxaz+fGG+kWk= 225 | github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE= 226 | github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= 227 | github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= 228 | github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19ybifQhZoQNF5D8= 229 | github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE= 230 | github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0= 231 | github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po= 232 | github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= 233 | github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= 234 | github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= 235 | github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e/go.mod h1:G1CVv03EnqU1wYL2dFwXxW2An0az9JTl/ZsqXQeBlkU= 236 | github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= 237 | github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= 238 | github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= 239 | github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= 240 | github.com/joho/godotenv v1.4.0 h1:3l4+N6zfMWnkbPEXKng2o2/MR5mSwTrBih4ZEkkz1lg= 241 | github.com/joho/godotenv v1.4.0/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= 242 | github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= 243 | github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= 244 | github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= 245 | github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= 246 | github.com/jsternberg/zap-logfmt v1.0.0/go.mod h1:uvPs/4X51zdkcm5jXl5SYoN+4RK21K8mysFmDaM/h+o= 247 | github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= 248 | github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= 249 | github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= 250 | github.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0= 251 | github.com/karalabe/usb v0.0.0-20190919080040-51dc0efba356/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= 252 | github.com/karalabe/usb v0.0.2/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= 253 | github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= 254 | github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= 255 | github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= 256 | github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= 257 | github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= 258 | github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg= 259 | github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= 260 | github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= 261 | github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= 262 | github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= 263 | github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= 264 | github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= 265 | github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= 266 | github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= 267 | github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= 268 | github.com/labstack/echo/v4 v4.2.1/go.mod h1:AA49e0DZ8kk5jTOOCKNuPR6oTnBS0dYiM4FW1e6jwpg= 269 | github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= 270 | github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= 271 | github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= 272 | github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= 273 | github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= 274 | github.com/matryer/moq v0.0.0-20190312154309-6cfb0558e1bd/go.mod h1:9ELz6aaclSIGnZBoaSLZ3NAl1VTufbOrXBPvtcy6WiQ= 275 | github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= 276 | github.com/mattn/go-colorable v0.1.0/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= 277 | github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= 278 | github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= 279 | github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= 280 | github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= 281 | github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= 282 | github.com/mattn/go-ieproxy v0.0.0-20190702010315-6dee0af9227d/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= 283 | github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= 284 | github.com/mattn/go-isatty v0.0.5-0.20180830101745-3fb116b82035/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= 285 | github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= 286 | github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= 287 | github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= 288 | github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= 289 | github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= 290 | github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= 291 | github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= 292 | github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= 293 | github.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= 294 | github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= 295 | github.com/miguelmota/go-ethereum-hdwallet v0.1.1 h1:zdXGlHao7idpCBjEGTXThVAtMKs+IxAgivZ75xqkWK0= 296 | github.com/miguelmota/go-ethereum-hdwallet v0.1.1/go.mod h1:f9m9uXokAHA6WNoYOPjj4AqjJS5pquQRiYYj/XSyPYc= 297 | github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= 298 | github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= 299 | github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A= 300 | github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= 301 | github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= 302 | github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= 303 | github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= 304 | github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= 305 | github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= 306 | github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= 307 | github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= 308 | github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= 309 | github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= 310 | github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= 311 | github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= 312 | github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= 313 | github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= 314 | github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= 315 | github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= 316 | github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= 317 | github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= 318 | github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= 319 | github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= 320 | github.com/opentracing/opentracing-go v1.0.3-0.20180606204148-bd9c31933947/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= 321 | github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= 322 | github.com/paulbellamy/ratecounter v0.2.0/go.mod h1:Hfx1hDpSGoqxkVVpBi/IlYD7kChlfo5C6hzIHwPqfFE= 323 | github.com/peterh/liner v1.0.1-0.20180619022028-8c1271fcf47f/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc= 324 | github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= 325 | github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= 326 | github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= 327 | github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 328 | github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 329 | github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= 330 | github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 331 | github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= 332 | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= 333 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 334 | github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= 335 | github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= 336 | github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= 337 | github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= 338 | github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= 339 | github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= 340 | github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= 341 | github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= 342 | github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= 343 | github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= 344 | github.com/prometheus/tsdb v0.7.1 h1:YZcsG11NqnK4czYLrWd9mpEuAJIHVQLwdrleYfszMAA= 345 | github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= 346 | github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= 347 | github.com/rjeczalik/notify v0.9.1 h1:CLCKso/QK1snAlnhNR/CNvNiFU2saUtjV0bx3EwNeCE= 348 | github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= 349 | github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= 350 | github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= 351 | github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= 352 | github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= 353 | github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= 354 | github.com/segmentio/kafka-go v0.2.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= 355 | github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= 356 | github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= 357 | github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= 358 | github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= 359 | github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= 360 | github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= 361 | github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= 362 | github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= 363 | github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= 364 | github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= 365 | github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= 366 | github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4 h1:Gb2Tyox57NRNuZ2d3rmvB3pcmbu7O1RS3m8WRx7ilrg= 367 | github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q= 368 | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 369 | github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 370 | github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= 371 | github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= 372 | github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= 373 | github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= 374 | github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= 375 | github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= 376 | github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 377 | github.com/syndtr/goleveldb v1.0.1-0.20210305035536-64b5b1c73954/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM= 378 | github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= 379 | github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= 380 | github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= 381 | github.com/tklauser/go-sysconf v0.3.5 h1:uu3Xl4nkLzQfXNsWn15rPc/HQCJKObbt1dKJeWp3vU4= 382 | github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI= 383 | github.com/tklauser/numcpus v0.2.2 h1:oyhllyrScuYI6g+h/zUvNXNp1wy7x8qQy3t/piefldA= 384 | github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= 385 | github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef h1:wHSqTBrZW24CsNJDfeh9Ex6Pm0Rcpc7qrgKBiL44vF4= 386 | github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= 387 | github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= 388 | github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= 389 | github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= 390 | github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= 391 | github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= 392 | github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= 393 | github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= 394 | go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= 395 | go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= 396 | go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= 397 | go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= 398 | go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= 399 | go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= 400 | golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= 401 | golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= 402 | golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= 403 | golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 404 | golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 405 | golang.org/x/crypto v0.0.0-20190909091759-094676da4a83/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 406 | golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 407 | golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= 408 | golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= 409 | golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= 410 | golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= 411 | golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= 412 | golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2 h1:It14KIkyBFYkHkwZ7k45minvA9aorojkyjGk9KJ5B/w= 413 | golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= 414 | golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= 415 | golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= 416 | golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= 417 | golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= 418 | golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= 419 | golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= 420 | golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= 421 | golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= 422 | golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= 423 | golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= 424 | golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= 425 | golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= 426 | golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= 427 | golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= 428 | golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= 429 | golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= 430 | golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= 431 | golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= 432 | golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= 433 | golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= 434 | golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= 435 | golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= 436 | golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= 437 | golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= 438 | golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= 439 | golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= 440 | golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 441 | golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 442 | golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 443 | golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 444 | golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 445 | golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 446 | golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 447 | golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 448 | golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 449 | golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 450 | golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 451 | golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 452 | golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 453 | golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 454 | golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= 455 | golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 456 | golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 457 | golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 458 | golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 459 | golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= 460 | golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= 461 | golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= 462 | golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= 463 | golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= 464 | golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= 465 | golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= 466 | golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= 467 | golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= 468 | golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= 469 | golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= 470 | golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= 471 | golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= 472 | golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 473 | golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 474 | golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 475 | golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 476 | golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 477 | golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 478 | golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 479 | golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 480 | golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= 481 | golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 482 | golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 483 | golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 484 | golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 485 | golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 486 | golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 487 | golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 488 | golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 489 | golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 490 | golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 491 | golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 492 | golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 493 | golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 494 | golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 495 | golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 496 | golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 497 | golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 498 | golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 499 | golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 500 | golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 501 | golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 502 | golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 503 | golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 504 | golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 505 | golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 506 | golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 507 | golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 508 | golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 509 | golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 510 | golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 511 | golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 512 | golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 513 | golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 514 | golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 515 | golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 516 | golang.org/x/sys v0.0.0-20210420205809-ac73e9fd8988/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 517 | golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 518 | golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912 h1:uCLL3g5wH2xjxVREVuAbP9JM5PPKjRbXKRa6IBjkzmU= 519 | golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 520 | golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= 521 | golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= 522 | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 523 | golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 524 | golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= 525 | golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 526 | golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 527 | golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 528 | golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= 529 | golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 530 | golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 531 | golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 532 | golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 533 | golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba h1:O8mE0/t419eoIwhTFpKVkHiTs/Igowgfkj25AcZrtiE= 534 | golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 535 | golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= 536 | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= 537 | golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= 538 | golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= 539 | golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= 540 | golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= 541 | golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= 542 | golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= 543 | golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= 544 | golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= 545 | golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= 546 | golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= 547 | golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= 548 | golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= 549 | golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= 550 | golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= 551 | golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 552 | golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 553 | golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 554 | golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 555 | golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 556 | golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 557 | golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 558 | golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 559 | golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 560 | golang.org/x/tools v0.0.0-20200108203644-89082a384178/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 561 | golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= 562 | golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 563 | golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 564 | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 565 | golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 566 | gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= 567 | gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= 568 | gonum.org/v1/gonum v0.6.0/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= 569 | gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= 570 | gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= 571 | gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= 572 | google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= 573 | google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= 574 | google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= 575 | google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= 576 | google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= 577 | google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= 578 | google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= 579 | google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= 580 | google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= 581 | google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= 582 | google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= 583 | google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= 584 | google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= 585 | google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= 586 | google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= 587 | google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= 588 | google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= 589 | google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= 590 | google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= 591 | google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= 592 | google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= 593 | google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= 594 | google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= 595 | google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= 596 | google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= 597 | google.golang.org/genproto v0.0.0-20200108215221-bd8f9a0ef82f/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= 598 | google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= 599 | google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= 600 | google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= 601 | google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= 602 | google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= 603 | google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= 604 | google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= 605 | google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= 606 | google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= 607 | google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= 608 | google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= 609 | gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= 610 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 611 | gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 612 | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= 613 | gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= 614 | gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= 615 | gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= 616 | gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= 617 | gopkg.in/olebedev/go-duktape.v3 v3.0.0-20200619000410-60c24ae608a6/go.mod h1:uAJfkITjFhyEEuUfm7bsmCZRbW5WRq8s9EY8HZ6hCns= 618 | gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= 619 | gopkg.in/urfave/cli.v1 v1.20.0 h1:NdAVW6RYxDif9DhDHaAortIu956m2c0v+09AZBPTbE0= 620 | gopkg.in/urfave/cli.v1 v1.20.0/go.mod h1:vuBzUtMdQeixQj8LVd+/98pzhxNGQoyuPBlsXHOQNO0= 621 | gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 622 | gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 623 | gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 624 | gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 625 | gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 626 | gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 627 | gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= 628 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= 629 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 630 | gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= 631 | honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 632 | honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 633 | honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 634 | honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 635 | honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= 636 | honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= 637 | rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= 638 | rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= 639 | -------------------------------------------------------------------------------- /abis/EntryPoint.go: -------------------------------------------------------------------------------- 1 | // Code generated - DO NOT EDIT. 2 | // This file is a generated binding and any manual changes will be lost. 3 | 4 | package abis 5 | 6 | import ( 7 | "errors" 8 | "math/big" 9 | "strings" 10 | 11 | ethereum "github.com/ethereum/go-ethereum" 12 | "github.com/ethereum/go-ethereum/accounts/abi" 13 | "github.com/ethereum/go-ethereum/accounts/abi/bind" 14 | "github.com/ethereum/go-ethereum/common" 15 | "github.com/ethereum/go-ethereum/core/types" 16 | "github.com/ethereum/go-ethereum/event" 17 | ) 18 | 19 | // Reference imports to suppress errors if they are not otherwise used. 20 | var ( 21 | _ = errors.New 22 | _ = big.NewInt 23 | _ = strings.NewReader 24 | _ = ethereum.NotFound 25 | _ = bind.Bind 26 | _ = common.Big1 27 | _ = types.BloomLookup 28 | _ = event.NewSubscription 29 | ) 30 | 31 | // StakeManagerDepositInfo is an auto generated low-level Go binding around an user-defined struct. 32 | type StakeManagerDepositInfo struct { 33 | Amount *big.Int 34 | UnstakeDelaySec uint32 35 | WithdrawTime uint64 36 | } 37 | 38 | // UserOperation is an auto generated low-level Go binding around an user-defined struct. 39 | type UserOperation struct { 40 | Sender common.Address 41 | Nonce *big.Int 42 | InitCode []byte 43 | CallData []byte 44 | CallGas *big.Int 45 | VerificationGas *big.Int 46 | PreVerificationGas *big.Int 47 | MaxFeePerGas *big.Int 48 | MaxPriorityFeePerGas *big.Int 49 | Paymaster common.Address 50 | PaymasterData []byte 51 | Signature []byte 52 | } 53 | 54 | // EntryPointMetaData contains all meta data concerning the EntryPoint contract. 55 | var EntryPointMetaData = &bind.MetaData{ 56 | ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_create2factory\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_paymasterStake\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_unstakeDelaySec\",\"type\":\"uint32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailedOp\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawTime\",\"type\":\"uint256\"}],\"name\":\"DepositUnstaked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalDeposit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"PaymasterPostOpFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualGasPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"name\":\"UserOperationEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"UserOperationRevertReason\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawAmount\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_unstakeDelaySec\",\"type\":\"uint32\"}],\"name\":\"addStakeTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"create2factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"depositTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"amount\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"withdrawTime\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getDepositInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint112\",\"name\":\"amount\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"withdrawTime\",\"type\":\"uint64\"}],\"internalType\":\"structStakeManager.DepositInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"paymasters\",\"type\":\"address[]\"}],\"name\":\"getPaymastersStake\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_stakes\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"paymasterData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"}],\"name\":\"getRequestId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_salt\",\"type\":\"uint256\"}],\"name\":\"getSenderAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"paymasterData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"addresspayable\",\"name\":\"beneficiary\",\"type\":\"address\"}],\"name\":\"handleOp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"paymasterData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structUserOperation[]\",\"name\":\"ops\",\"type\":\"tuple[]\"},{\"internalType\":\"addresspayable\",\"name\":\"beneficiary\",\"type\":\"address\"}],\"name\":\"handleOps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"paymasterData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"enumEntryPoint.PaymentMode\",\"name\":\"paymentMode\",\"type\":\"uint8\"}],\"name\":\"internalHandleOp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"isContractDeployed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"}],\"name\":\"isPaymasterStaked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredDelaySec\",\"type\":\"uint256\"}],\"name\":\"isStaked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paymasterStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"paymasterData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"}],\"name\":\"simulateValidation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unstakeDelaySec\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unstakeDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"withdrawAmount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", 57 | } 58 | 59 | // EntryPointABI is the input ABI used to generate the binding from. 60 | // Deprecated: Use EntryPointMetaData.ABI instead. 61 | var EntryPointABI = EntryPointMetaData.ABI 62 | 63 | // EntryPoint is an auto generated Go binding around an Ethereum contract. 64 | type EntryPoint struct { 65 | EntryPointCaller // Read-only binding to the contract 66 | EntryPointTransactor // Write-only binding to the contract 67 | EntryPointFilterer // Log filterer for contract events 68 | } 69 | 70 | // EntryPointCaller is an auto generated read-only Go binding around an Ethereum contract. 71 | type EntryPointCaller struct { 72 | contract *bind.BoundContract // Generic contract wrapper for the low level calls 73 | } 74 | 75 | // EntryPointTransactor is an auto generated write-only Go binding around an Ethereum contract. 76 | type EntryPointTransactor struct { 77 | contract *bind.BoundContract // Generic contract wrapper for the low level calls 78 | } 79 | 80 | // EntryPointFilterer is an auto generated log filtering Go binding around an Ethereum contract events. 81 | type EntryPointFilterer struct { 82 | contract *bind.BoundContract // Generic contract wrapper for the low level calls 83 | } 84 | 85 | // EntryPointSession is an auto generated Go binding around an Ethereum contract, 86 | // with pre-set call and transact options. 87 | type EntryPointSession struct { 88 | Contract *EntryPoint // Generic contract binding to set the session for 89 | CallOpts bind.CallOpts // Call options to use throughout this session 90 | TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 91 | } 92 | 93 | // EntryPointCallerSession is an auto generated read-only Go binding around an Ethereum contract, 94 | // with pre-set call options. 95 | type EntryPointCallerSession struct { 96 | Contract *EntryPointCaller // Generic contract caller binding to set the session for 97 | CallOpts bind.CallOpts // Call options to use throughout this session 98 | } 99 | 100 | // EntryPointTransactorSession is an auto generated write-only Go binding around an Ethereum contract, 101 | // with pre-set transact options. 102 | type EntryPointTransactorSession struct { 103 | Contract *EntryPointTransactor // Generic contract transactor binding to set the session for 104 | TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 105 | } 106 | 107 | // EntryPointRaw is an auto generated low-level Go binding around an Ethereum contract. 108 | type EntryPointRaw struct { 109 | Contract *EntryPoint // Generic contract binding to access the raw methods on 110 | } 111 | 112 | // EntryPointCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 113 | type EntryPointCallerRaw struct { 114 | Contract *EntryPointCaller // Generic read-only contract binding to access the raw methods on 115 | } 116 | 117 | // EntryPointTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 118 | type EntryPointTransactorRaw struct { 119 | Contract *EntryPointTransactor // Generic write-only contract binding to access the raw methods on 120 | } 121 | 122 | // NewEntryPoint creates a new instance of EntryPoint, bound to a specific deployed contract. 123 | func NewEntryPoint(address common.Address, backend bind.ContractBackend) (*EntryPoint, error) { 124 | contract, err := bindEntryPoint(address, backend, backend, backend) 125 | if err != nil { 126 | return nil, err 127 | } 128 | return &EntryPoint{EntryPointCaller: EntryPointCaller{contract: contract}, EntryPointTransactor: EntryPointTransactor{contract: contract}, EntryPointFilterer: EntryPointFilterer{contract: contract}}, nil 129 | } 130 | 131 | // NewEntryPointCaller creates a new read-only instance of EntryPoint, bound to a specific deployed contract. 132 | func NewEntryPointCaller(address common.Address, caller bind.ContractCaller) (*EntryPointCaller, error) { 133 | contract, err := bindEntryPoint(address, caller, nil, nil) 134 | if err != nil { 135 | return nil, err 136 | } 137 | return &EntryPointCaller{contract: contract}, nil 138 | } 139 | 140 | // NewEntryPointTransactor creates a new write-only instance of EntryPoint, bound to a specific deployed contract. 141 | func NewEntryPointTransactor(address common.Address, transactor bind.ContractTransactor) (*EntryPointTransactor, error) { 142 | contract, err := bindEntryPoint(address, nil, transactor, nil) 143 | if err != nil { 144 | return nil, err 145 | } 146 | return &EntryPointTransactor{contract: contract}, nil 147 | } 148 | 149 | // NewEntryPointFilterer creates a new log filterer instance of EntryPoint, bound to a specific deployed contract. 150 | func NewEntryPointFilterer(address common.Address, filterer bind.ContractFilterer) (*EntryPointFilterer, error) { 151 | contract, err := bindEntryPoint(address, nil, nil, filterer) 152 | if err != nil { 153 | return nil, err 154 | } 155 | return &EntryPointFilterer{contract: contract}, nil 156 | } 157 | 158 | // bindEntryPoint binds a generic wrapper to an already deployed contract. 159 | func bindEntryPoint(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 160 | parsed, err := abi.JSON(strings.NewReader(EntryPointABI)) 161 | if err != nil { 162 | return nil, err 163 | } 164 | return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 165 | } 166 | 167 | // Call invokes the (constant) contract method with params as input values and 168 | // sets the output to result. The result type might be a single field for simple 169 | // returns, a slice of interfaces for anonymous returns and a struct for named 170 | // returns. 171 | func (_EntryPoint *EntryPointRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 172 | return _EntryPoint.Contract.EntryPointCaller.contract.Call(opts, result, method, params...) 173 | } 174 | 175 | // Transfer initiates a plain transaction to move funds to the contract, calling 176 | // its default method if one is available. 177 | func (_EntryPoint *EntryPointRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 178 | return _EntryPoint.Contract.EntryPointTransactor.contract.Transfer(opts) 179 | } 180 | 181 | // Transact invokes the (paid) contract method with params as input values. 182 | func (_EntryPoint *EntryPointRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 183 | return _EntryPoint.Contract.EntryPointTransactor.contract.Transact(opts, method, params...) 184 | } 185 | 186 | // Call invokes the (constant) contract method with params as input values and 187 | // sets the output to result. The result type might be a single field for simple 188 | // returns, a slice of interfaces for anonymous returns and a struct for named 189 | // returns. 190 | func (_EntryPoint *EntryPointCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 191 | return _EntryPoint.Contract.contract.Call(opts, result, method, params...) 192 | } 193 | 194 | // Transfer initiates a plain transaction to move funds to the contract, calling 195 | // its default method if one is available. 196 | func (_EntryPoint *EntryPointTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 197 | return _EntryPoint.Contract.contract.Transfer(opts) 198 | } 199 | 200 | // Transact invokes the (paid) contract method with params as input values. 201 | func (_EntryPoint *EntryPointTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 202 | return _EntryPoint.Contract.contract.Transact(opts, method, params...) 203 | } 204 | 205 | // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 206 | // 207 | // Solidity: function balanceOf(address account) view returns(uint256) 208 | func (_EntryPoint *EntryPointCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { 209 | var out []interface{} 210 | err := _EntryPoint.contract.Call(opts, &out, "balanceOf", account) 211 | 212 | if err != nil { 213 | return *new(*big.Int), err 214 | } 215 | 216 | out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 217 | 218 | return out0, err 219 | 220 | } 221 | 222 | // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 223 | // 224 | // Solidity: function balanceOf(address account) view returns(uint256) 225 | func (_EntryPoint *EntryPointSession) BalanceOf(account common.Address) (*big.Int, error) { 226 | return _EntryPoint.Contract.BalanceOf(&_EntryPoint.CallOpts, account) 227 | } 228 | 229 | // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 230 | // 231 | // Solidity: function balanceOf(address account) view returns(uint256) 232 | func (_EntryPoint *EntryPointCallerSession) BalanceOf(account common.Address) (*big.Int, error) { 233 | return _EntryPoint.Contract.BalanceOf(&_EntryPoint.CallOpts, account) 234 | } 235 | 236 | // Create2factory is a free data retrieval call binding the contract method 0x0bfb6847. 237 | // 238 | // Solidity: function create2factory() view returns(address) 239 | func (_EntryPoint *EntryPointCaller) Create2factory(opts *bind.CallOpts) (common.Address, error) { 240 | var out []interface{} 241 | err := _EntryPoint.contract.Call(opts, &out, "create2factory") 242 | 243 | if err != nil { 244 | return *new(common.Address), err 245 | } 246 | 247 | out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 248 | 249 | return out0, err 250 | 251 | } 252 | 253 | // Create2factory is a free data retrieval call binding the contract method 0x0bfb6847. 254 | // 255 | // Solidity: function create2factory() view returns(address) 256 | func (_EntryPoint *EntryPointSession) Create2factory() (common.Address, error) { 257 | return _EntryPoint.Contract.Create2factory(&_EntryPoint.CallOpts) 258 | } 259 | 260 | // Create2factory is a free data retrieval call binding the contract method 0x0bfb6847. 261 | // 262 | // Solidity: function create2factory() view returns(address) 263 | func (_EntryPoint *EntryPointCallerSession) Create2factory() (common.Address, error) { 264 | return _EntryPoint.Contract.Create2factory(&_EntryPoint.CallOpts) 265 | } 266 | 267 | // Deposits is a free data retrieval call binding the contract method 0xfc7e286d. 268 | // 269 | // Solidity: function deposits(address ) view returns(uint112 amount, uint32 unstakeDelaySec, uint64 withdrawTime) 270 | func (_EntryPoint *EntryPointCaller) Deposits(opts *bind.CallOpts, arg0 common.Address) (struct { 271 | Amount *big.Int 272 | UnstakeDelaySec uint32 273 | WithdrawTime uint64 274 | }, error) { 275 | var out []interface{} 276 | err := _EntryPoint.contract.Call(opts, &out, "deposits", arg0) 277 | 278 | outstruct := new(struct { 279 | Amount *big.Int 280 | UnstakeDelaySec uint32 281 | WithdrawTime uint64 282 | }) 283 | if err != nil { 284 | return *outstruct, err 285 | } 286 | 287 | outstruct.Amount = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 288 | outstruct.UnstakeDelaySec = *abi.ConvertType(out[1], new(uint32)).(*uint32) 289 | outstruct.WithdrawTime = *abi.ConvertType(out[2], new(uint64)).(*uint64) 290 | 291 | return *outstruct, err 292 | 293 | } 294 | 295 | // Deposits is a free data retrieval call binding the contract method 0xfc7e286d. 296 | // 297 | // Solidity: function deposits(address ) view returns(uint112 amount, uint32 unstakeDelaySec, uint64 withdrawTime) 298 | func (_EntryPoint *EntryPointSession) Deposits(arg0 common.Address) (struct { 299 | Amount *big.Int 300 | UnstakeDelaySec uint32 301 | WithdrawTime uint64 302 | }, error) { 303 | return _EntryPoint.Contract.Deposits(&_EntryPoint.CallOpts, arg0) 304 | } 305 | 306 | // Deposits is a free data retrieval call binding the contract method 0xfc7e286d. 307 | // 308 | // Solidity: function deposits(address ) view returns(uint112 amount, uint32 unstakeDelaySec, uint64 withdrawTime) 309 | func (_EntryPoint *EntryPointCallerSession) Deposits(arg0 common.Address) (struct { 310 | Amount *big.Int 311 | UnstakeDelaySec uint32 312 | WithdrawTime uint64 313 | }, error) { 314 | return _EntryPoint.Contract.Deposits(&_EntryPoint.CallOpts, arg0) 315 | } 316 | 317 | // GetDepositInfo is a free data retrieval call binding the contract method 0x5287ce12. 318 | // 319 | // Solidity: function getDepositInfo(address account) view returns((uint112,uint32,uint64) info) 320 | func (_EntryPoint *EntryPointCaller) GetDepositInfo(opts *bind.CallOpts, account common.Address) (StakeManagerDepositInfo, error) { 321 | var out []interface{} 322 | err := _EntryPoint.contract.Call(opts, &out, "getDepositInfo", account) 323 | 324 | if err != nil { 325 | return *new(StakeManagerDepositInfo), err 326 | } 327 | 328 | out0 := *abi.ConvertType(out[0], new(StakeManagerDepositInfo)).(*StakeManagerDepositInfo) 329 | 330 | return out0, err 331 | 332 | } 333 | 334 | // GetDepositInfo is a free data retrieval call binding the contract method 0x5287ce12. 335 | // 336 | // Solidity: function getDepositInfo(address account) view returns((uint112,uint32,uint64) info) 337 | func (_EntryPoint *EntryPointSession) GetDepositInfo(account common.Address) (StakeManagerDepositInfo, error) { 338 | return _EntryPoint.Contract.GetDepositInfo(&_EntryPoint.CallOpts, account) 339 | } 340 | 341 | // GetDepositInfo is a free data retrieval call binding the contract method 0x5287ce12. 342 | // 343 | // Solidity: function getDepositInfo(address account) view returns((uint112,uint32,uint64) info) 344 | func (_EntryPoint *EntryPointCallerSession) GetDepositInfo(account common.Address) (StakeManagerDepositInfo, error) { 345 | return _EntryPoint.Contract.GetDepositInfo(&_EntryPoint.CallOpts, account) 346 | } 347 | 348 | // GetPaymastersStake is a free data retrieval call binding the contract method 0x739b8950. 349 | // 350 | // Solidity: function getPaymastersStake(address[] paymasters) view returns(uint256[] _stakes) 351 | func (_EntryPoint *EntryPointCaller) GetPaymastersStake(opts *bind.CallOpts, paymasters []common.Address) ([]*big.Int, error) { 352 | var out []interface{} 353 | err := _EntryPoint.contract.Call(opts, &out, "getPaymastersStake", paymasters) 354 | 355 | if err != nil { 356 | return *new([]*big.Int), err 357 | } 358 | 359 | out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) 360 | 361 | return out0, err 362 | 363 | } 364 | 365 | // GetPaymastersStake is a free data retrieval call binding the contract method 0x739b8950. 366 | // 367 | // Solidity: function getPaymastersStake(address[] paymasters) view returns(uint256[] _stakes) 368 | func (_EntryPoint *EntryPointSession) GetPaymastersStake(paymasters []common.Address) ([]*big.Int, error) { 369 | return _EntryPoint.Contract.GetPaymastersStake(&_EntryPoint.CallOpts, paymasters) 370 | } 371 | 372 | // GetPaymastersStake is a free data retrieval call binding the contract method 0x739b8950. 373 | // 374 | // Solidity: function getPaymastersStake(address[] paymasters) view returns(uint256[] _stakes) 375 | func (_EntryPoint *EntryPointCallerSession) GetPaymastersStake(paymasters []common.Address) ([]*big.Int, error) { 376 | return _EntryPoint.Contract.GetPaymastersStake(&_EntryPoint.CallOpts, paymasters) 377 | } 378 | 379 | // GetRequestId is a free data retrieval call binding the contract method 0x4baeaf8a. 380 | // 381 | // Solidity: function getRequestId((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,address,bytes,bytes) userOp) view returns(bytes32) 382 | func (_EntryPoint *EntryPointCaller) GetRequestId(opts *bind.CallOpts, userOp UserOperation) ([32]byte, error) { 383 | var out []interface{} 384 | err := _EntryPoint.contract.Call(opts, &out, "getRequestId", userOp) 385 | 386 | if err != nil { 387 | return *new([32]byte), err 388 | } 389 | 390 | out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) 391 | 392 | return out0, err 393 | 394 | } 395 | 396 | // GetRequestId is a free data retrieval call binding the contract method 0x4baeaf8a. 397 | // 398 | // Solidity: function getRequestId((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,address,bytes,bytes) userOp) view returns(bytes32) 399 | func (_EntryPoint *EntryPointSession) GetRequestId(userOp UserOperation) ([32]byte, error) { 400 | return _EntryPoint.Contract.GetRequestId(&_EntryPoint.CallOpts, userOp) 401 | } 402 | 403 | // GetRequestId is a free data retrieval call binding the contract method 0x4baeaf8a. 404 | // 405 | // Solidity: function getRequestId((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,address,bytes,bytes) userOp) view returns(bytes32) 406 | func (_EntryPoint *EntryPointCallerSession) GetRequestId(userOp UserOperation) ([32]byte, error) { 407 | return _EntryPoint.Contract.GetRequestId(&_EntryPoint.CallOpts, userOp) 408 | } 409 | 410 | // GetSenderAddress is a free data retrieval call binding the contract method 0xc31e4354. 411 | // 412 | // Solidity: function getSenderAddress(bytes initCode, uint256 _salt) view returns(address) 413 | func (_EntryPoint *EntryPointCaller) GetSenderAddress(opts *bind.CallOpts, initCode []byte, _salt *big.Int) (common.Address, error) { 414 | var out []interface{} 415 | err := _EntryPoint.contract.Call(opts, &out, "getSenderAddress", initCode, _salt) 416 | 417 | if err != nil { 418 | return *new(common.Address), err 419 | } 420 | 421 | out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 422 | 423 | return out0, err 424 | 425 | } 426 | 427 | // GetSenderAddress is a free data retrieval call binding the contract method 0xc31e4354. 428 | // 429 | // Solidity: function getSenderAddress(bytes initCode, uint256 _salt) view returns(address) 430 | func (_EntryPoint *EntryPointSession) GetSenderAddress(initCode []byte, _salt *big.Int) (common.Address, error) { 431 | return _EntryPoint.Contract.GetSenderAddress(&_EntryPoint.CallOpts, initCode, _salt) 432 | } 433 | 434 | // GetSenderAddress is a free data retrieval call binding the contract method 0xc31e4354. 435 | // 436 | // Solidity: function getSenderAddress(bytes initCode, uint256 _salt) view returns(address) 437 | func (_EntryPoint *EntryPointCallerSession) GetSenderAddress(initCode []byte, _salt *big.Int) (common.Address, error) { 438 | return _EntryPoint.Contract.GetSenderAddress(&_EntryPoint.CallOpts, initCode, _salt) 439 | } 440 | 441 | // IsContractDeployed is a free data retrieval call binding the contract method 0xf20751eb. 442 | // 443 | // Solidity: function isContractDeployed(address addr) view returns(bool) 444 | func (_EntryPoint *EntryPointCaller) IsContractDeployed(opts *bind.CallOpts, addr common.Address) (bool, error) { 445 | var out []interface{} 446 | err := _EntryPoint.contract.Call(opts, &out, "isContractDeployed", addr) 447 | 448 | if err != nil { 449 | return *new(bool), err 450 | } 451 | 452 | out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 453 | 454 | return out0, err 455 | 456 | } 457 | 458 | // IsContractDeployed is a free data retrieval call binding the contract method 0xf20751eb. 459 | // 460 | // Solidity: function isContractDeployed(address addr) view returns(bool) 461 | func (_EntryPoint *EntryPointSession) IsContractDeployed(addr common.Address) (bool, error) { 462 | return _EntryPoint.Contract.IsContractDeployed(&_EntryPoint.CallOpts, addr) 463 | } 464 | 465 | // IsContractDeployed is a free data retrieval call binding the contract method 0xf20751eb. 466 | // 467 | // Solidity: function isContractDeployed(address addr) view returns(bool) 468 | func (_EntryPoint *EntryPointCallerSession) IsContractDeployed(addr common.Address) (bool, error) { 469 | return _EntryPoint.Contract.IsContractDeployed(&_EntryPoint.CallOpts, addr) 470 | } 471 | 472 | // IsPaymasterStaked is a free data retrieval call binding the contract method 0x1fa75c86. 473 | // 474 | // Solidity: function isPaymasterStaked(address paymaster, uint256 stake) view returns(bool) 475 | func (_EntryPoint *EntryPointCaller) IsPaymasterStaked(opts *bind.CallOpts, paymaster common.Address, stake *big.Int) (bool, error) { 476 | var out []interface{} 477 | err := _EntryPoint.contract.Call(opts, &out, "isPaymasterStaked", paymaster, stake) 478 | 479 | if err != nil { 480 | return *new(bool), err 481 | } 482 | 483 | out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 484 | 485 | return out0, err 486 | 487 | } 488 | 489 | // IsPaymasterStaked is a free data retrieval call binding the contract method 0x1fa75c86. 490 | // 491 | // Solidity: function isPaymasterStaked(address paymaster, uint256 stake) view returns(bool) 492 | func (_EntryPoint *EntryPointSession) IsPaymasterStaked(paymaster common.Address, stake *big.Int) (bool, error) { 493 | return _EntryPoint.Contract.IsPaymasterStaked(&_EntryPoint.CallOpts, paymaster, stake) 494 | } 495 | 496 | // IsPaymasterStaked is a free data retrieval call binding the contract method 0x1fa75c86. 497 | // 498 | // Solidity: function isPaymasterStaked(address paymaster, uint256 stake) view returns(bool) 499 | func (_EntryPoint *EntryPointCallerSession) IsPaymasterStaked(paymaster common.Address, stake *big.Int) (bool, error) { 500 | return _EntryPoint.Contract.IsPaymasterStaked(&_EntryPoint.CallOpts, paymaster, stake) 501 | } 502 | 503 | // IsStaked is a free data retrieval call binding the contract method 0x1c112a44. 504 | // 505 | // Solidity: function isStaked(address account, uint256 requiredStake, uint256 requiredDelaySec) view returns(bool) 506 | func (_EntryPoint *EntryPointCaller) IsStaked(opts *bind.CallOpts, account common.Address, requiredStake *big.Int, requiredDelaySec *big.Int) (bool, error) { 507 | var out []interface{} 508 | err := _EntryPoint.contract.Call(opts, &out, "isStaked", account, requiredStake, requiredDelaySec) 509 | 510 | if err != nil { 511 | return *new(bool), err 512 | } 513 | 514 | out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 515 | 516 | return out0, err 517 | 518 | } 519 | 520 | // IsStaked is a free data retrieval call binding the contract method 0x1c112a44. 521 | // 522 | // Solidity: function isStaked(address account, uint256 requiredStake, uint256 requiredDelaySec) view returns(bool) 523 | func (_EntryPoint *EntryPointSession) IsStaked(account common.Address, requiredStake *big.Int, requiredDelaySec *big.Int) (bool, error) { 524 | return _EntryPoint.Contract.IsStaked(&_EntryPoint.CallOpts, account, requiredStake, requiredDelaySec) 525 | } 526 | 527 | // IsStaked is a free data retrieval call binding the contract method 0x1c112a44. 528 | // 529 | // Solidity: function isStaked(address account, uint256 requiredStake, uint256 requiredDelaySec) view returns(bool) 530 | func (_EntryPoint *EntryPointCallerSession) IsStaked(account common.Address, requiredStake *big.Int, requiredDelaySec *big.Int) (bool, error) { 531 | return _EntryPoint.Contract.IsStaked(&_EntryPoint.CallOpts, account, requiredStake, requiredDelaySec) 532 | } 533 | 534 | // PaymasterStake is a free data retrieval call binding the contract method 0x17c6a987. 535 | // 536 | // Solidity: function paymasterStake() view returns(uint256) 537 | func (_EntryPoint *EntryPointCaller) PaymasterStake(opts *bind.CallOpts) (*big.Int, error) { 538 | var out []interface{} 539 | err := _EntryPoint.contract.Call(opts, &out, "paymasterStake") 540 | 541 | if err != nil { 542 | return *new(*big.Int), err 543 | } 544 | 545 | out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 546 | 547 | return out0, err 548 | 549 | } 550 | 551 | // PaymasterStake is a free data retrieval call binding the contract method 0x17c6a987. 552 | // 553 | // Solidity: function paymasterStake() view returns(uint256) 554 | func (_EntryPoint *EntryPointSession) PaymasterStake() (*big.Int, error) { 555 | return _EntryPoint.Contract.PaymasterStake(&_EntryPoint.CallOpts) 556 | } 557 | 558 | // PaymasterStake is a free data retrieval call binding the contract method 0x17c6a987. 559 | // 560 | // Solidity: function paymasterStake() view returns(uint256) 561 | func (_EntryPoint *EntryPointCallerSession) PaymasterStake() (*big.Int, error) { 562 | return _EntryPoint.Contract.PaymasterStake(&_EntryPoint.CallOpts) 563 | } 564 | 565 | // UnstakeDelaySec is a free data retrieval call binding the contract method 0x390b9978. 566 | // 567 | // Solidity: function unstakeDelaySec() view returns(uint32) 568 | func (_EntryPoint *EntryPointCaller) UnstakeDelaySec(opts *bind.CallOpts) (uint32, error) { 569 | var out []interface{} 570 | err := _EntryPoint.contract.Call(opts, &out, "unstakeDelaySec") 571 | 572 | if err != nil { 573 | return *new(uint32), err 574 | } 575 | 576 | out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) 577 | 578 | return out0, err 579 | 580 | } 581 | 582 | // UnstakeDelaySec is a free data retrieval call binding the contract method 0x390b9978. 583 | // 584 | // Solidity: function unstakeDelaySec() view returns(uint32) 585 | func (_EntryPoint *EntryPointSession) UnstakeDelaySec() (uint32, error) { 586 | return _EntryPoint.Contract.UnstakeDelaySec(&_EntryPoint.CallOpts) 587 | } 588 | 589 | // UnstakeDelaySec is a free data retrieval call binding the contract method 0x390b9978. 590 | // 591 | // Solidity: function unstakeDelaySec() view returns(uint32) 592 | func (_EntryPoint *EntryPointCallerSession) UnstakeDelaySec() (uint32, error) { 593 | return _EntryPoint.Contract.UnstakeDelaySec(&_EntryPoint.CallOpts) 594 | } 595 | 596 | // AddStakeTo is a paid mutator transaction binding the contract method 0x4a5b84ec. 597 | // 598 | // Solidity: function addStakeTo(address account, uint32 _unstakeDelaySec) payable returns() 599 | func (_EntryPoint *EntryPointTransactor) AddStakeTo(opts *bind.TransactOpts, account common.Address, _unstakeDelaySec uint32) (*types.Transaction, error) { 600 | return _EntryPoint.contract.Transact(opts, "addStakeTo", account, _unstakeDelaySec) 601 | } 602 | 603 | // AddStakeTo is a paid mutator transaction binding the contract method 0x4a5b84ec. 604 | // 605 | // Solidity: function addStakeTo(address account, uint32 _unstakeDelaySec) payable returns() 606 | func (_EntryPoint *EntryPointSession) AddStakeTo(account common.Address, _unstakeDelaySec uint32) (*types.Transaction, error) { 607 | return _EntryPoint.Contract.AddStakeTo(&_EntryPoint.TransactOpts, account, _unstakeDelaySec) 608 | } 609 | 610 | // AddStakeTo is a paid mutator transaction binding the contract method 0x4a5b84ec. 611 | // 612 | // Solidity: function addStakeTo(address account, uint32 _unstakeDelaySec) payable returns() 613 | func (_EntryPoint *EntryPointTransactorSession) AddStakeTo(account common.Address, _unstakeDelaySec uint32) (*types.Transaction, error) { 614 | return _EntryPoint.Contract.AddStakeTo(&_EntryPoint.TransactOpts, account, _unstakeDelaySec) 615 | } 616 | 617 | // DepositTo is a paid mutator transaction binding the contract method 0xb760faf9. 618 | // 619 | // Solidity: function depositTo(address account) payable returns() 620 | func (_EntryPoint *EntryPointTransactor) DepositTo(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) { 621 | return _EntryPoint.contract.Transact(opts, "depositTo", account) 622 | } 623 | 624 | // DepositTo is a paid mutator transaction binding the contract method 0xb760faf9. 625 | // 626 | // Solidity: function depositTo(address account) payable returns() 627 | func (_EntryPoint *EntryPointSession) DepositTo(account common.Address) (*types.Transaction, error) { 628 | return _EntryPoint.Contract.DepositTo(&_EntryPoint.TransactOpts, account) 629 | } 630 | 631 | // DepositTo is a paid mutator transaction binding the contract method 0xb760faf9. 632 | // 633 | // Solidity: function depositTo(address account) payable returns() 634 | func (_EntryPoint *EntryPointTransactorSession) DepositTo(account common.Address) (*types.Transaction, error) { 635 | return _EntryPoint.Contract.DepositTo(&_EntryPoint.TransactOpts, account) 636 | } 637 | 638 | // HandleOp is a paid mutator transaction binding the contract method 0xdbbabd6a. 639 | // 640 | // Solidity: function handleOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,address,bytes,bytes) op, address beneficiary) returns() 641 | func (_EntryPoint *EntryPointTransactor) HandleOp(opts *bind.TransactOpts, op UserOperation, beneficiary common.Address) (*types.Transaction, error) { 642 | return _EntryPoint.contract.Transact(opts, "handleOp", op, beneficiary) 643 | } 644 | 645 | // HandleOp is a paid mutator transaction binding the contract method 0xdbbabd6a. 646 | // 647 | // Solidity: function handleOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,address,bytes,bytes) op, address beneficiary) returns() 648 | func (_EntryPoint *EntryPointSession) HandleOp(op UserOperation, beneficiary common.Address) (*types.Transaction, error) { 649 | return _EntryPoint.Contract.HandleOp(&_EntryPoint.TransactOpts, op, beneficiary) 650 | } 651 | 652 | // HandleOp is a paid mutator transaction binding the contract method 0xdbbabd6a. 653 | // 654 | // Solidity: function handleOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,address,bytes,bytes) op, address beneficiary) returns() 655 | func (_EntryPoint *EntryPointTransactorSession) HandleOp(op UserOperation, beneficiary common.Address) (*types.Transaction, error) { 656 | return _EntryPoint.Contract.HandleOp(&_EntryPoint.TransactOpts, op, beneficiary) 657 | } 658 | 659 | // HandleOps is a paid mutator transaction binding the contract method 0x2815c17b. 660 | // 661 | // Solidity: function handleOps((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,address,bytes,bytes)[] ops, address beneficiary) returns() 662 | func (_EntryPoint *EntryPointTransactor) HandleOps(opts *bind.TransactOpts, ops []UserOperation, beneficiary common.Address) (*types.Transaction, error) { 663 | return _EntryPoint.contract.Transact(opts, "handleOps", ops, beneficiary) 664 | } 665 | 666 | // HandleOps is a paid mutator transaction binding the contract method 0x2815c17b. 667 | // 668 | // Solidity: function handleOps((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,address,bytes,bytes)[] ops, address beneficiary) returns() 669 | func (_EntryPoint *EntryPointSession) HandleOps(ops []UserOperation, beneficiary common.Address) (*types.Transaction, error) { 670 | return _EntryPoint.Contract.HandleOps(&_EntryPoint.TransactOpts, ops, beneficiary) 671 | } 672 | 673 | // HandleOps is a paid mutator transaction binding the contract method 0x2815c17b. 674 | // 675 | // Solidity: function handleOps((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,address,bytes,bytes)[] ops, address beneficiary) returns() 676 | func (_EntryPoint *EntryPointTransactorSession) HandleOps(ops []UserOperation, beneficiary common.Address) (*types.Transaction, error) { 677 | return _EntryPoint.Contract.HandleOps(&_EntryPoint.TransactOpts, ops, beneficiary) 678 | } 679 | 680 | // InternalHandleOp is a paid mutator transaction binding the contract method 0x39243aad. 681 | // 682 | // Solidity: function internalHandleOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,address,bytes,bytes) op, bytes32 requestId, bytes context, uint256 preOpGas, uint256 prefund, uint8 paymentMode) returns(uint256 actualGasCost) 683 | func (_EntryPoint *EntryPointTransactor) InternalHandleOp(opts *bind.TransactOpts, op UserOperation, requestId [32]byte, context []byte, preOpGas *big.Int, prefund *big.Int, paymentMode uint8) (*types.Transaction, error) { 684 | return _EntryPoint.contract.Transact(opts, "internalHandleOp", op, requestId, context, preOpGas, prefund, paymentMode) 685 | } 686 | 687 | // InternalHandleOp is a paid mutator transaction binding the contract method 0x39243aad. 688 | // 689 | // Solidity: function internalHandleOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,address,bytes,bytes) op, bytes32 requestId, bytes context, uint256 preOpGas, uint256 prefund, uint8 paymentMode) returns(uint256 actualGasCost) 690 | func (_EntryPoint *EntryPointSession) InternalHandleOp(op UserOperation, requestId [32]byte, context []byte, preOpGas *big.Int, prefund *big.Int, paymentMode uint8) (*types.Transaction, error) { 691 | return _EntryPoint.Contract.InternalHandleOp(&_EntryPoint.TransactOpts, op, requestId, context, preOpGas, prefund, paymentMode) 692 | } 693 | 694 | // InternalHandleOp is a paid mutator transaction binding the contract method 0x39243aad. 695 | // 696 | // Solidity: function internalHandleOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,address,bytes,bytes) op, bytes32 requestId, bytes context, uint256 preOpGas, uint256 prefund, uint8 paymentMode) returns(uint256 actualGasCost) 697 | func (_EntryPoint *EntryPointTransactorSession) InternalHandleOp(op UserOperation, requestId [32]byte, context []byte, preOpGas *big.Int, prefund *big.Int, paymentMode uint8) (*types.Transaction, error) { 698 | return _EntryPoint.Contract.InternalHandleOp(&_EntryPoint.TransactOpts, op, requestId, context, preOpGas, prefund, paymentMode) 699 | } 700 | 701 | // SimulateValidation is a paid mutator transaction binding the contract method 0x1a1c1141. 702 | // 703 | // Solidity: function simulateValidation((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,address,bytes,bytes) userOp) returns(uint256 preOpGas, uint256 prefund) 704 | func (_EntryPoint *EntryPointTransactor) SimulateValidation(opts *bind.TransactOpts, userOp UserOperation) (*types.Transaction, error) { 705 | return _EntryPoint.contract.Transact(opts, "simulateValidation", userOp) 706 | } 707 | 708 | // SimulateValidation is a paid mutator transaction binding the contract method 0x1a1c1141. 709 | // 710 | // Solidity: function simulateValidation((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,address,bytes,bytes) userOp) returns(uint256 preOpGas, uint256 prefund) 711 | func (_EntryPoint *EntryPointSession) SimulateValidation(userOp UserOperation) (*types.Transaction, error) { 712 | return _EntryPoint.Contract.SimulateValidation(&_EntryPoint.TransactOpts, userOp) 713 | } 714 | 715 | // SimulateValidation is a paid mutator transaction binding the contract method 0x1a1c1141. 716 | // 717 | // Solidity: function simulateValidation((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,address,bytes,bytes) userOp) returns(uint256 preOpGas, uint256 prefund) 718 | func (_EntryPoint *EntryPointTransactorSession) SimulateValidation(userOp UserOperation) (*types.Transaction, error) { 719 | return _EntryPoint.Contract.SimulateValidation(&_EntryPoint.TransactOpts, userOp) 720 | } 721 | 722 | // UnstakeDeposit is a paid mutator transaction binding the contract method 0x37bbb73a. 723 | // 724 | // Solidity: function unstakeDeposit() returns() 725 | func (_EntryPoint *EntryPointTransactor) UnstakeDeposit(opts *bind.TransactOpts) (*types.Transaction, error) { 726 | return _EntryPoint.contract.Transact(opts, "unstakeDeposit") 727 | } 728 | 729 | // UnstakeDeposit is a paid mutator transaction binding the contract method 0x37bbb73a. 730 | // 731 | // Solidity: function unstakeDeposit() returns() 732 | func (_EntryPoint *EntryPointSession) UnstakeDeposit() (*types.Transaction, error) { 733 | return _EntryPoint.Contract.UnstakeDeposit(&_EntryPoint.TransactOpts) 734 | } 735 | 736 | // UnstakeDeposit is a paid mutator transaction binding the contract method 0x37bbb73a. 737 | // 738 | // Solidity: function unstakeDeposit() returns() 739 | func (_EntryPoint *EntryPointTransactorSession) UnstakeDeposit() (*types.Transaction, error) { 740 | return _EntryPoint.Contract.UnstakeDeposit(&_EntryPoint.TransactOpts) 741 | } 742 | 743 | // WithdrawTo is a paid mutator transaction binding the contract method 0x205c2878. 744 | // 745 | // Solidity: function withdrawTo(address withdrawAddress, uint256 withdrawAmount) returns() 746 | func (_EntryPoint *EntryPointTransactor) WithdrawTo(opts *bind.TransactOpts, withdrawAddress common.Address, withdrawAmount *big.Int) (*types.Transaction, error) { 747 | return _EntryPoint.contract.Transact(opts, "withdrawTo", withdrawAddress, withdrawAmount) 748 | } 749 | 750 | // WithdrawTo is a paid mutator transaction binding the contract method 0x205c2878. 751 | // 752 | // Solidity: function withdrawTo(address withdrawAddress, uint256 withdrawAmount) returns() 753 | func (_EntryPoint *EntryPointSession) WithdrawTo(withdrawAddress common.Address, withdrawAmount *big.Int) (*types.Transaction, error) { 754 | return _EntryPoint.Contract.WithdrawTo(&_EntryPoint.TransactOpts, withdrawAddress, withdrawAmount) 755 | } 756 | 757 | // WithdrawTo is a paid mutator transaction binding the contract method 0x205c2878. 758 | // 759 | // Solidity: function withdrawTo(address withdrawAddress, uint256 withdrawAmount) returns() 760 | func (_EntryPoint *EntryPointTransactorSession) WithdrawTo(withdrawAddress common.Address, withdrawAmount *big.Int) (*types.Transaction, error) { 761 | return _EntryPoint.Contract.WithdrawTo(&_EntryPoint.TransactOpts, withdrawAddress, withdrawAmount) 762 | } 763 | 764 | // Receive is a paid mutator transaction binding the contract receive function. 765 | // 766 | // Solidity: receive() payable returns() 767 | func (_EntryPoint *EntryPointTransactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) { 768 | return _EntryPoint.contract.RawTransact(opts, nil) // calldata is disallowed for receive function 769 | } 770 | 771 | // Receive is a paid mutator transaction binding the contract receive function. 772 | // 773 | // Solidity: receive() payable returns() 774 | func (_EntryPoint *EntryPointSession) Receive() (*types.Transaction, error) { 775 | return _EntryPoint.Contract.Receive(&_EntryPoint.TransactOpts) 776 | } 777 | 778 | // Receive is a paid mutator transaction binding the contract receive function. 779 | // 780 | // Solidity: receive() payable returns() 781 | func (_EntryPoint *EntryPointTransactorSession) Receive() (*types.Transaction, error) { 782 | return _EntryPoint.Contract.Receive(&_EntryPoint.TransactOpts) 783 | } 784 | 785 | // EntryPointDepositUnstakedIterator is returned from FilterDepositUnstaked and is used to iterate over the raw logs and unpacked data for DepositUnstaked events raised by the EntryPoint contract. 786 | type EntryPointDepositUnstakedIterator struct { 787 | Event *EntryPointDepositUnstaked // Event containing the contract specifics and raw log 788 | 789 | contract *bind.BoundContract // Generic contract to use for unpacking event data 790 | event string // Event name to use for unpacking event data 791 | 792 | logs chan types.Log // Log channel receiving the found contract events 793 | sub ethereum.Subscription // Subscription for errors, completion and termination 794 | done bool // Whether the subscription completed delivering logs 795 | fail error // Occurred error to stop iteration 796 | } 797 | 798 | // Next advances the iterator to the subsequent event, returning whether there 799 | // are any more events found. In case of a retrieval or parsing error, false is 800 | // returned and Error() can be queried for the exact failure. 801 | func (it *EntryPointDepositUnstakedIterator) Next() bool { 802 | // If the iterator failed, stop iterating 803 | if it.fail != nil { 804 | return false 805 | } 806 | // If the iterator completed, deliver directly whatever's available 807 | if it.done { 808 | select { 809 | case log := <-it.logs: 810 | it.Event = new(EntryPointDepositUnstaked) 811 | if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 812 | it.fail = err 813 | return false 814 | } 815 | it.Event.Raw = log 816 | return true 817 | 818 | default: 819 | return false 820 | } 821 | } 822 | // Iterator still in progress, wait for either a data or an error event 823 | select { 824 | case log := <-it.logs: 825 | it.Event = new(EntryPointDepositUnstaked) 826 | if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 827 | it.fail = err 828 | return false 829 | } 830 | it.Event.Raw = log 831 | return true 832 | 833 | case err := <-it.sub.Err(): 834 | it.done = true 835 | it.fail = err 836 | return it.Next() 837 | } 838 | } 839 | 840 | // Error returns any retrieval or parsing error occurred during filtering. 841 | func (it *EntryPointDepositUnstakedIterator) Error() error { 842 | return it.fail 843 | } 844 | 845 | // Close terminates the iteration process, releasing any pending underlying 846 | // resources. 847 | func (it *EntryPointDepositUnstakedIterator) Close() error { 848 | it.sub.Unsubscribe() 849 | return nil 850 | } 851 | 852 | // EntryPointDepositUnstaked represents a DepositUnstaked event raised by the EntryPoint contract. 853 | type EntryPointDepositUnstaked struct { 854 | Account common.Address 855 | WithdrawTime *big.Int 856 | Raw types.Log // Blockchain specific contextual infos 857 | } 858 | 859 | // FilterDepositUnstaked is a free log retrieval operation binding the contract event 0x91e6fc21bf6989ecaaa31f2c7d10426d5fa64279f0af85af30e0964230960ce2. 860 | // 861 | // Solidity: event DepositUnstaked(address indexed account, uint256 withdrawTime) 862 | func (_EntryPoint *EntryPointFilterer) FilterDepositUnstaked(opts *bind.FilterOpts, account []common.Address) (*EntryPointDepositUnstakedIterator, error) { 863 | 864 | var accountRule []interface{} 865 | for _, accountItem := range account { 866 | accountRule = append(accountRule, accountItem) 867 | } 868 | 869 | logs, sub, err := _EntryPoint.contract.FilterLogs(opts, "DepositUnstaked", accountRule) 870 | if err != nil { 871 | return nil, err 872 | } 873 | return &EntryPointDepositUnstakedIterator{contract: _EntryPoint.contract, event: "DepositUnstaked", logs: logs, sub: sub}, nil 874 | } 875 | 876 | // WatchDepositUnstaked is a free log subscription operation binding the contract event 0x91e6fc21bf6989ecaaa31f2c7d10426d5fa64279f0af85af30e0964230960ce2. 877 | // 878 | // Solidity: event DepositUnstaked(address indexed account, uint256 withdrawTime) 879 | func (_EntryPoint *EntryPointFilterer) WatchDepositUnstaked(opts *bind.WatchOpts, sink chan<- *EntryPointDepositUnstaked, account []common.Address) (event.Subscription, error) { 880 | 881 | var accountRule []interface{} 882 | for _, accountItem := range account { 883 | accountRule = append(accountRule, accountItem) 884 | } 885 | 886 | logs, sub, err := _EntryPoint.contract.WatchLogs(opts, "DepositUnstaked", accountRule) 887 | if err != nil { 888 | return nil, err 889 | } 890 | return event.NewSubscription(func(quit <-chan struct{}) error { 891 | defer sub.Unsubscribe() 892 | for { 893 | select { 894 | case log := <-logs: 895 | // New log arrived, parse the event and forward to the user 896 | event := new(EntryPointDepositUnstaked) 897 | if err := _EntryPoint.contract.UnpackLog(event, "DepositUnstaked", log); err != nil { 898 | return err 899 | } 900 | event.Raw = log 901 | 902 | select { 903 | case sink <- event: 904 | case err := <-sub.Err(): 905 | return err 906 | case <-quit: 907 | return nil 908 | } 909 | case err := <-sub.Err(): 910 | return err 911 | case <-quit: 912 | return nil 913 | } 914 | } 915 | }), nil 916 | } 917 | 918 | // ParseDepositUnstaked is a log parse operation binding the contract event 0x91e6fc21bf6989ecaaa31f2c7d10426d5fa64279f0af85af30e0964230960ce2. 919 | // 920 | // Solidity: event DepositUnstaked(address indexed account, uint256 withdrawTime) 921 | func (_EntryPoint *EntryPointFilterer) ParseDepositUnstaked(log types.Log) (*EntryPointDepositUnstaked, error) { 922 | event := new(EntryPointDepositUnstaked) 923 | if err := _EntryPoint.contract.UnpackLog(event, "DepositUnstaked", log); err != nil { 924 | return nil, err 925 | } 926 | event.Raw = log 927 | return event, nil 928 | } 929 | 930 | // EntryPointDepositedIterator is returned from FilterDeposited and is used to iterate over the raw logs and unpacked data for Deposited events raised by the EntryPoint contract. 931 | type EntryPointDepositedIterator struct { 932 | Event *EntryPointDeposited // Event containing the contract specifics and raw log 933 | 934 | contract *bind.BoundContract // Generic contract to use for unpacking event data 935 | event string // Event name to use for unpacking event data 936 | 937 | logs chan types.Log // Log channel receiving the found contract events 938 | sub ethereum.Subscription // Subscription for errors, completion and termination 939 | done bool // Whether the subscription completed delivering logs 940 | fail error // Occurred error to stop iteration 941 | } 942 | 943 | // Next advances the iterator to the subsequent event, returning whether there 944 | // are any more events found. In case of a retrieval or parsing error, false is 945 | // returned and Error() can be queried for the exact failure. 946 | func (it *EntryPointDepositedIterator) Next() bool { 947 | // If the iterator failed, stop iterating 948 | if it.fail != nil { 949 | return false 950 | } 951 | // If the iterator completed, deliver directly whatever's available 952 | if it.done { 953 | select { 954 | case log := <-it.logs: 955 | it.Event = new(EntryPointDeposited) 956 | if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 957 | it.fail = err 958 | return false 959 | } 960 | it.Event.Raw = log 961 | return true 962 | 963 | default: 964 | return false 965 | } 966 | } 967 | // Iterator still in progress, wait for either a data or an error event 968 | select { 969 | case log := <-it.logs: 970 | it.Event = new(EntryPointDeposited) 971 | if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 972 | it.fail = err 973 | return false 974 | } 975 | it.Event.Raw = log 976 | return true 977 | 978 | case err := <-it.sub.Err(): 979 | it.done = true 980 | it.fail = err 981 | return it.Next() 982 | } 983 | } 984 | 985 | // Error returns any retrieval or parsing error occurred during filtering. 986 | func (it *EntryPointDepositedIterator) Error() error { 987 | return it.fail 988 | } 989 | 990 | // Close terminates the iteration process, releasing any pending underlying 991 | // resources. 992 | func (it *EntryPointDepositedIterator) Close() error { 993 | it.sub.Unsubscribe() 994 | return nil 995 | } 996 | 997 | // EntryPointDeposited represents a Deposited event raised by the EntryPoint contract. 998 | type EntryPointDeposited struct { 999 | Account common.Address 1000 | TotalDeposit *big.Int 1001 | UnstakeDelaySec *big.Int 1002 | Raw types.Log // Blockchain specific contextual infos 1003 | } 1004 | 1005 | // FilterDeposited is a free log retrieval operation binding the contract event 0x73a19dd210f1a7f902193214c0ee91dd35ee5b4d920cba8d519eca65a7b488ca. 1006 | // 1007 | // Solidity: event Deposited(address indexed account, uint256 totalDeposit, uint256 unstakeDelaySec) 1008 | func (_EntryPoint *EntryPointFilterer) FilterDeposited(opts *bind.FilterOpts, account []common.Address) (*EntryPointDepositedIterator, error) { 1009 | 1010 | var accountRule []interface{} 1011 | for _, accountItem := range account { 1012 | accountRule = append(accountRule, accountItem) 1013 | } 1014 | 1015 | logs, sub, err := _EntryPoint.contract.FilterLogs(opts, "Deposited", accountRule) 1016 | if err != nil { 1017 | return nil, err 1018 | } 1019 | return &EntryPointDepositedIterator{contract: _EntryPoint.contract, event: "Deposited", logs: logs, sub: sub}, nil 1020 | } 1021 | 1022 | // WatchDeposited is a free log subscription operation binding the contract event 0x73a19dd210f1a7f902193214c0ee91dd35ee5b4d920cba8d519eca65a7b488ca. 1023 | // 1024 | // Solidity: event Deposited(address indexed account, uint256 totalDeposit, uint256 unstakeDelaySec) 1025 | func (_EntryPoint *EntryPointFilterer) WatchDeposited(opts *bind.WatchOpts, sink chan<- *EntryPointDeposited, account []common.Address) (event.Subscription, error) { 1026 | 1027 | var accountRule []interface{} 1028 | for _, accountItem := range account { 1029 | accountRule = append(accountRule, accountItem) 1030 | } 1031 | 1032 | logs, sub, err := _EntryPoint.contract.WatchLogs(opts, "Deposited", accountRule) 1033 | if err != nil { 1034 | return nil, err 1035 | } 1036 | return event.NewSubscription(func(quit <-chan struct{}) error { 1037 | defer sub.Unsubscribe() 1038 | for { 1039 | select { 1040 | case log := <-logs: 1041 | // New log arrived, parse the event and forward to the user 1042 | event := new(EntryPointDeposited) 1043 | if err := _EntryPoint.contract.UnpackLog(event, "Deposited", log); err != nil { 1044 | return err 1045 | } 1046 | event.Raw = log 1047 | 1048 | select { 1049 | case sink <- event: 1050 | case err := <-sub.Err(): 1051 | return err 1052 | case <-quit: 1053 | return nil 1054 | } 1055 | case err := <-sub.Err(): 1056 | return err 1057 | case <-quit: 1058 | return nil 1059 | } 1060 | } 1061 | }), nil 1062 | } 1063 | 1064 | // ParseDeposited is a log parse operation binding the contract event 0x73a19dd210f1a7f902193214c0ee91dd35ee5b4d920cba8d519eca65a7b488ca. 1065 | // 1066 | // Solidity: event Deposited(address indexed account, uint256 totalDeposit, uint256 unstakeDelaySec) 1067 | func (_EntryPoint *EntryPointFilterer) ParseDeposited(log types.Log) (*EntryPointDeposited, error) { 1068 | event := new(EntryPointDeposited) 1069 | if err := _EntryPoint.contract.UnpackLog(event, "Deposited", log); err != nil { 1070 | return nil, err 1071 | } 1072 | event.Raw = log 1073 | return event, nil 1074 | } 1075 | 1076 | // EntryPointPaymasterPostOpFailedIterator is returned from FilterPaymasterPostOpFailed and is used to iterate over the raw logs and unpacked data for PaymasterPostOpFailed events raised by the EntryPoint contract. 1077 | type EntryPointPaymasterPostOpFailedIterator struct { 1078 | Event *EntryPointPaymasterPostOpFailed // Event containing the contract specifics and raw log 1079 | 1080 | contract *bind.BoundContract // Generic contract to use for unpacking event data 1081 | event string // Event name to use for unpacking event data 1082 | 1083 | logs chan types.Log // Log channel receiving the found contract events 1084 | sub ethereum.Subscription // Subscription for errors, completion and termination 1085 | done bool // Whether the subscription completed delivering logs 1086 | fail error // Occurred error to stop iteration 1087 | } 1088 | 1089 | // Next advances the iterator to the subsequent event, returning whether there 1090 | // are any more events found. In case of a retrieval or parsing error, false is 1091 | // returned and Error() can be queried for the exact failure. 1092 | func (it *EntryPointPaymasterPostOpFailedIterator) Next() bool { 1093 | // If the iterator failed, stop iterating 1094 | if it.fail != nil { 1095 | return false 1096 | } 1097 | // If the iterator completed, deliver directly whatever's available 1098 | if it.done { 1099 | select { 1100 | case log := <-it.logs: 1101 | it.Event = new(EntryPointPaymasterPostOpFailed) 1102 | if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1103 | it.fail = err 1104 | return false 1105 | } 1106 | it.Event.Raw = log 1107 | return true 1108 | 1109 | default: 1110 | return false 1111 | } 1112 | } 1113 | // Iterator still in progress, wait for either a data or an error event 1114 | select { 1115 | case log := <-it.logs: 1116 | it.Event = new(EntryPointPaymasterPostOpFailed) 1117 | if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1118 | it.fail = err 1119 | return false 1120 | } 1121 | it.Event.Raw = log 1122 | return true 1123 | 1124 | case err := <-it.sub.Err(): 1125 | it.done = true 1126 | it.fail = err 1127 | return it.Next() 1128 | } 1129 | } 1130 | 1131 | // Error returns any retrieval or parsing error occurred during filtering. 1132 | func (it *EntryPointPaymasterPostOpFailedIterator) Error() error { 1133 | return it.fail 1134 | } 1135 | 1136 | // Close terminates the iteration process, releasing any pending underlying 1137 | // resources. 1138 | func (it *EntryPointPaymasterPostOpFailedIterator) Close() error { 1139 | it.sub.Unsubscribe() 1140 | return nil 1141 | } 1142 | 1143 | // EntryPointPaymasterPostOpFailed represents a PaymasterPostOpFailed event raised by the EntryPoint contract. 1144 | type EntryPointPaymasterPostOpFailed struct { 1145 | RequestId [32]byte 1146 | Sender common.Address 1147 | Paymaster common.Address 1148 | Nonce *big.Int 1149 | Reason []byte 1150 | Raw types.Log // Blockchain specific contextual infos 1151 | } 1152 | 1153 | // FilterPaymasterPostOpFailed is a free log retrieval operation binding the contract event 0xf6c093f11418b6fd4d07651255d51a3ed2da1be560c58f19767dede55c6e43d6. 1154 | // 1155 | // Solidity: event PaymasterPostOpFailed(bytes32 indexed requestId, address indexed sender, address indexed paymaster, uint256 nonce, bytes reason) 1156 | func (_EntryPoint *EntryPointFilterer) FilterPaymasterPostOpFailed(opts *bind.FilterOpts, requestId [][32]byte, sender []common.Address, paymaster []common.Address) (*EntryPointPaymasterPostOpFailedIterator, error) { 1157 | 1158 | var requestIdRule []interface{} 1159 | for _, requestIdItem := range requestId { 1160 | requestIdRule = append(requestIdRule, requestIdItem) 1161 | } 1162 | var senderRule []interface{} 1163 | for _, senderItem := range sender { 1164 | senderRule = append(senderRule, senderItem) 1165 | } 1166 | var paymasterRule []interface{} 1167 | for _, paymasterItem := range paymaster { 1168 | paymasterRule = append(paymasterRule, paymasterItem) 1169 | } 1170 | 1171 | logs, sub, err := _EntryPoint.contract.FilterLogs(opts, "PaymasterPostOpFailed", requestIdRule, senderRule, paymasterRule) 1172 | if err != nil { 1173 | return nil, err 1174 | } 1175 | return &EntryPointPaymasterPostOpFailedIterator{contract: _EntryPoint.contract, event: "PaymasterPostOpFailed", logs: logs, sub: sub}, nil 1176 | } 1177 | 1178 | // WatchPaymasterPostOpFailed is a free log subscription operation binding the contract event 0xf6c093f11418b6fd4d07651255d51a3ed2da1be560c58f19767dede55c6e43d6. 1179 | // 1180 | // Solidity: event PaymasterPostOpFailed(bytes32 indexed requestId, address indexed sender, address indexed paymaster, uint256 nonce, bytes reason) 1181 | func (_EntryPoint *EntryPointFilterer) WatchPaymasterPostOpFailed(opts *bind.WatchOpts, sink chan<- *EntryPointPaymasterPostOpFailed, requestId [][32]byte, sender []common.Address, paymaster []common.Address) (event.Subscription, error) { 1182 | 1183 | var requestIdRule []interface{} 1184 | for _, requestIdItem := range requestId { 1185 | requestIdRule = append(requestIdRule, requestIdItem) 1186 | } 1187 | var senderRule []interface{} 1188 | for _, senderItem := range sender { 1189 | senderRule = append(senderRule, senderItem) 1190 | } 1191 | var paymasterRule []interface{} 1192 | for _, paymasterItem := range paymaster { 1193 | paymasterRule = append(paymasterRule, paymasterItem) 1194 | } 1195 | 1196 | logs, sub, err := _EntryPoint.contract.WatchLogs(opts, "PaymasterPostOpFailed", requestIdRule, senderRule, paymasterRule) 1197 | if err != nil { 1198 | return nil, err 1199 | } 1200 | return event.NewSubscription(func(quit <-chan struct{}) error { 1201 | defer sub.Unsubscribe() 1202 | for { 1203 | select { 1204 | case log := <-logs: 1205 | // New log arrived, parse the event and forward to the user 1206 | event := new(EntryPointPaymasterPostOpFailed) 1207 | if err := _EntryPoint.contract.UnpackLog(event, "PaymasterPostOpFailed", log); err != nil { 1208 | return err 1209 | } 1210 | event.Raw = log 1211 | 1212 | select { 1213 | case sink <- event: 1214 | case err := <-sub.Err(): 1215 | return err 1216 | case <-quit: 1217 | return nil 1218 | } 1219 | case err := <-sub.Err(): 1220 | return err 1221 | case <-quit: 1222 | return nil 1223 | } 1224 | } 1225 | }), nil 1226 | } 1227 | 1228 | // ParsePaymasterPostOpFailed is a log parse operation binding the contract event 0xf6c093f11418b6fd4d07651255d51a3ed2da1be560c58f19767dede55c6e43d6. 1229 | // 1230 | // Solidity: event PaymasterPostOpFailed(bytes32 indexed requestId, address indexed sender, address indexed paymaster, uint256 nonce, bytes reason) 1231 | func (_EntryPoint *EntryPointFilterer) ParsePaymasterPostOpFailed(log types.Log) (*EntryPointPaymasterPostOpFailed, error) { 1232 | event := new(EntryPointPaymasterPostOpFailed) 1233 | if err := _EntryPoint.contract.UnpackLog(event, "PaymasterPostOpFailed", log); err != nil { 1234 | return nil, err 1235 | } 1236 | event.Raw = log 1237 | return event, nil 1238 | } 1239 | 1240 | // EntryPointUserOperationEventIterator is returned from FilterUserOperationEvent and is used to iterate over the raw logs and unpacked data for UserOperationEvent events raised by the EntryPoint contract. 1241 | type EntryPointUserOperationEventIterator struct { 1242 | Event *EntryPointUserOperationEvent // Event containing the contract specifics and raw log 1243 | 1244 | contract *bind.BoundContract // Generic contract to use for unpacking event data 1245 | event string // Event name to use for unpacking event data 1246 | 1247 | logs chan types.Log // Log channel receiving the found contract events 1248 | sub ethereum.Subscription // Subscription for errors, completion and termination 1249 | done bool // Whether the subscription completed delivering logs 1250 | fail error // Occurred error to stop iteration 1251 | } 1252 | 1253 | // Next advances the iterator to the subsequent event, returning whether there 1254 | // are any more events found. In case of a retrieval or parsing error, false is 1255 | // returned and Error() can be queried for the exact failure. 1256 | func (it *EntryPointUserOperationEventIterator) Next() bool { 1257 | // If the iterator failed, stop iterating 1258 | if it.fail != nil { 1259 | return false 1260 | } 1261 | // If the iterator completed, deliver directly whatever's available 1262 | if it.done { 1263 | select { 1264 | case log := <-it.logs: 1265 | it.Event = new(EntryPointUserOperationEvent) 1266 | if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1267 | it.fail = err 1268 | return false 1269 | } 1270 | it.Event.Raw = log 1271 | return true 1272 | 1273 | default: 1274 | return false 1275 | } 1276 | } 1277 | // Iterator still in progress, wait for either a data or an error event 1278 | select { 1279 | case log := <-it.logs: 1280 | it.Event = new(EntryPointUserOperationEvent) 1281 | if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1282 | it.fail = err 1283 | return false 1284 | } 1285 | it.Event.Raw = log 1286 | return true 1287 | 1288 | case err := <-it.sub.Err(): 1289 | it.done = true 1290 | it.fail = err 1291 | return it.Next() 1292 | } 1293 | } 1294 | 1295 | // Error returns any retrieval or parsing error occurred during filtering. 1296 | func (it *EntryPointUserOperationEventIterator) Error() error { 1297 | return it.fail 1298 | } 1299 | 1300 | // Close terminates the iteration process, releasing any pending underlying 1301 | // resources. 1302 | func (it *EntryPointUserOperationEventIterator) Close() error { 1303 | it.sub.Unsubscribe() 1304 | return nil 1305 | } 1306 | 1307 | // EntryPointUserOperationEvent represents a UserOperationEvent event raised by the EntryPoint contract. 1308 | type EntryPointUserOperationEvent struct { 1309 | RequestId [32]byte 1310 | Sender common.Address 1311 | Paymaster common.Address 1312 | Nonce *big.Int 1313 | ActualGasCost *big.Int 1314 | ActualGasPrice *big.Int 1315 | Success bool 1316 | Raw types.Log // Blockchain specific contextual infos 1317 | } 1318 | 1319 | // FilterUserOperationEvent is a free log retrieval operation binding the contract event 0x33fd4d1f25a5461bea901784a6571de6debc16cd0831932c22c6969cd73ba994. 1320 | // 1321 | // Solidity: event UserOperationEvent(bytes32 indexed requestId, address indexed sender, address indexed paymaster, uint256 nonce, uint256 actualGasCost, uint256 actualGasPrice, bool success) 1322 | func (_EntryPoint *EntryPointFilterer) FilterUserOperationEvent(opts *bind.FilterOpts, requestId [][32]byte, sender []common.Address, paymaster []common.Address) (*EntryPointUserOperationEventIterator, error) { 1323 | 1324 | var requestIdRule []interface{} 1325 | for _, requestIdItem := range requestId { 1326 | requestIdRule = append(requestIdRule, requestIdItem) 1327 | } 1328 | var senderRule []interface{} 1329 | for _, senderItem := range sender { 1330 | senderRule = append(senderRule, senderItem) 1331 | } 1332 | var paymasterRule []interface{} 1333 | for _, paymasterItem := range paymaster { 1334 | paymasterRule = append(paymasterRule, paymasterItem) 1335 | } 1336 | 1337 | logs, sub, err := _EntryPoint.contract.FilterLogs(opts, "UserOperationEvent", requestIdRule, senderRule, paymasterRule) 1338 | if err != nil { 1339 | return nil, err 1340 | } 1341 | return &EntryPointUserOperationEventIterator{contract: _EntryPoint.contract, event: "UserOperationEvent", logs: logs, sub: sub}, nil 1342 | } 1343 | 1344 | // WatchUserOperationEvent is a free log subscription operation binding the contract event 0x33fd4d1f25a5461bea901784a6571de6debc16cd0831932c22c6969cd73ba994. 1345 | // 1346 | // Solidity: event UserOperationEvent(bytes32 indexed requestId, address indexed sender, address indexed paymaster, uint256 nonce, uint256 actualGasCost, uint256 actualGasPrice, bool success) 1347 | func (_EntryPoint *EntryPointFilterer) WatchUserOperationEvent(opts *bind.WatchOpts, sink chan<- *EntryPointUserOperationEvent, requestId [][32]byte, sender []common.Address, paymaster []common.Address) (event.Subscription, error) { 1348 | 1349 | var requestIdRule []interface{} 1350 | for _, requestIdItem := range requestId { 1351 | requestIdRule = append(requestIdRule, requestIdItem) 1352 | } 1353 | var senderRule []interface{} 1354 | for _, senderItem := range sender { 1355 | senderRule = append(senderRule, senderItem) 1356 | } 1357 | var paymasterRule []interface{} 1358 | for _, paymasterItem := range paymaster { 1359 | paymasterRule = append(paymasterRule, paymasterItem) 1360 | } 1361 | 1362 | logs, sub, err := _EntryPoint.contract.WatchLogs(opts, "UserOperationEvent", requestIdRule, senderRule, paymasterRule) 1363 | if err != nil { 1364 | return nil, err 1365 | } 1366 | return event.NewSubscription(func(quit <-chan struct{}) error { 1367 | defer sub.Unsubscribe() 1368 | for { 1369 | select { 1370 | case log := <-logs: 1371 | // New log arrived, parse the event and forward to the user 1372 | event := new(EntryPointUserOperationEvent) 1373 | if err := _EntryPoint.contract.UnpackLog(event, "UserOperationEvent", log); err != nil { 1374 | return err 1375 | } 1376 | event.Raw = log 1377 | 1378 | select { 1379 | case sink <- event: 1380 | case err := <-sub.Err(): 1381 | return err 1382 | case <-quit: 1383 | return nil 1384 | } 1385 | case err := <-sub.Err(): 1386 | return err 1387 | case <-quit: 1388 | return nil 1389 | } 1390 | } 1391 | }), nil 1392 | } 1393 | 1394 | // ParseUserOperationEvent is a log parse operation binding the contract event 0x33fd4d1f25a5461bea901784a6571de6debc16cd0831932c22c6969cd73ba994. 1395 | // 1396 | // Solidity: event UserOperationEvent(bytes32 indexed requestId, address indexed sender, address indexed paymaster, uint256 nonce, uint256 actualGasCost, uint256 actualGasPrice, bool success) 1397 | func (_EntryPoint *EntryPointFilterer) ParseUserOperationEvent(log types.Log) (*EntryPointUserOperationEvent, error) { 1398 | event := new(EntryPointUserOperationEvent) 1399 | if err := _EntryPoint.contract.UnpackLog(event, "UserOperationEvent", log); err != nil { 1400 | return nil, err 1401 | } 1402 | event.Raw = log 1403 | return event, nil 1404 | } 1405 | 1406 | // EntryPointUserOperationRevertReasonIterator is returned from FilterUserOperationRevertReason and is used to iterate over the raw logs and unpacked data for UserOperationRevertReason events raised by the EntryPoint contract. 1407 | type EntryPointUserOperationRevertReasonIterator struct { 1408 | Event *EntryPointUserOperationRevertReason // Event containing the contract specifics and raw log 1409 | 1410 | contract *bind.BoundContract // Generic contract to use for unpacking event data 1411 | event string // Event name to use for unpacking event data 1412 | 1413 | logs chan types.Log // Log channel receiving the found contract events 1414 | sub ethereum.Subscription // Subscription for errors, completion and termination 1415 | done bool // Whether the subscription completed delivering logs 1416 | fail error // Occurred error to stop iteration 1417 | } 1418 | 1419 | // Next advances the iterator to the subsequent event, returning whether there 1420 | // are any more events found. In case of a retrieval or parsing error, false is 1421 | // returned and Error() can be queried for the exact failure. 1422 | func (it *EntryPointUserOperationRevertReasonIterator) Next() bool { 1423 | // If the iterator failed, stop iterating 1424 | if it.fail != nil { 1425 | return false 1426 | } 1427 | // If the iterator completed, deliver directly whatever's available 1428 | if it.done { 1429 | select { 1430 | case log := <-it.logs: 1431 | it.Event = new(EntryPointUserOperationRevertReason) 1432 | if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1433 | it.fail = err 1434 | return false 1435 | } 1436 | it.Event.Raw = log 1437 | return true 1438 | 1439 | default: 1440 | return false 1441 | } 1442 | } 1443 | // Iterator still in progress, wait for either a data or an error event 1444 | select { 1445 | case log := <-it.logs: 1446 | it.Event = new(EntryPointUserOperationRevertReason) 1447 | if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1448 | it.fail = err 1449 | return false 1450 | } 1451 | it.Event.Raw = log 1452 | return true 1453 | 1454 | case err := <-it.sub.Err(): 1455 | it.done = true 1456 | it.fail = err 1457 | return it.Next() 1458 | } 1459 | } 1460 | 1461 | // Error returns any retrieval or parsing error occurred during filtering. 1462 | func (it *EntryPointUserOperationRevertReasonIterator) Error() error { 1463 | return it.fail 1464 | } 1465 | 1466 | // Close terminates the iteration process, releasing any pending underlying 1467 | // resources. 1468 | func (it *EntryPointUserOperationRevertReasonIterator) Close() error { 1469 | it.sub.Unsubscribe() 1470 | return nil 1471 | } 1472 | 1473 | // EntryPointUserOperationRevertReason represents a UserOperationRevertReason event raised by the EntryPoint contract. 1474 | type EntryPointUserOperationRevertReason struct { 1475 | RequestId [32]byte 1476 | Sender common.Address 1477 | Nonce *big.Int 1478 | RevertReason []byte 1479 | Raw types.Log // Blockchain specific contextual infos 1480 | } 1481 | 1482 | // FilterUserOperationRevertReason is a free log retrieval operation binding the contract event 0x1c4fada7374c0a9ee8841fc38afe82932dc0f8e69012e927f061a8bae611a201. 1483 | // 1484 | // Solidity: event UserOperationRevertReason(bytes32 indexed requestId, address indexed sender, uint256 nonce, bytes revertReason) 1485 | func (_EntryPoint *EntryPointFilterer) FilterUserOperationRevertReason(opts *bind.FilterOpts, requestId [][32]byte, sender []common.Address) (*EntryPointUserOperationRevertReasonIterator, error) { 1486 | 1487 | var requestIdRule []interface{} 1488 | for _, requestIdItem := range requestId { 1489 | requestIdRule = append(requestIdRule, requestIdItem) 1490 | } 1491 | var senderRule []interface{} 1492 | for _, senderItem := range sender { 1493 | senderRule = append(senderRule, senderItem) 1494 | } 1495 | 1496 | logs, sub, err := _EntryPoint.contract.FilterLogs(opts, "UserOperationRevertReason", requestIdRule, senderRule) 1497 | if err != nil { 1498 | return nil, err 1499 | } 1500 | return &EntryPointUserOperationRevertReasonIterator{contract: _EntryPoint.contract, event: "UserOperationRevertReason", logs: logs, sub: sub}, nil 1501 | } 1502 | 1503 | // WatchUserOperationRevertReason is a free log subscription operation binding the contract event 0x1c4fada7374c0a9ee8841fc38afe82932dc0f8e69012e927f061a8bae611a201. 1504 | // 1505 | // Solidity: event UserOperationRevertReason(bytes32 indexed requestId, address indexed sender, uint256 nonce, bytes revertReason) 1506 | func (_EntryPoint *EntryPointFilterer) WatchUserOperationRevertReason(opts *bind.WatchOpts, sink chan<- *EntryPointUserOperationRevertReason, requestId [][32]byte, sender []common.Address) (event.Subscription, error) { 1507 | 1508 | var requestIdRule []interface{} 1509 | for _, requestIdItem := range requestId { 1510 | requestIdRule = append(requestIdRule, requestIdItem) 1511 | } 1512 | var senderRule []interface{} 1513 | for _, senderItem := range sender { 1514 | senderRule = append(senderRule, senderItem) 1515 | } 1516 | 1517 | logs, sub, err := _EntryPoint.contract.WatchLogs(opts, "UserOperationRevertReason", requestIdRule, senderRule) 1518 | if err != nil { 1519 | return nil, err 1520 | } 1521 | return event.NewSubscription(func(quit <-chan struct{}) error { 1522 | defer sub.Unsubscribe() 1523 | for { 1524 | select { 1525 | case log := <-logs: 1526 | // New log arrived, parse the event and forward to the user 1527 | event := new(EntryPointUserOperationRevertReason) 1528 | if err := _EntryPoint.contract.UnpackLog(event, "UserOperationRevertReason", log); err != nil { 1529 | return err 1530 | } 1531 | event.Raw = log 1532 | 1533 | select { 1534 | case sink <- event: 1535 | case err := <-sub.Err(): 1536 | return err 1537 | case <-quit: 1538 | return nil 1539 | } 1540 | case err := <-sub.Err(): 1541 | return err 1542 | case <-quit: 1543 | return nil 1544 | } 1545 | } 1546 | }), nil 1547 | } 1548 | 1549 | // ParseUserOperationRevertReason is a log parse operation binding the contract event 0x1c4fada7374c0a9ee8841fc38afe82932dc0f8e69012e927f061a8bae611a201. 1550 | // 1551 | // Solidity: event UserOperationRevertReason(bytes32 indexed requestId, address indexed sender, uint256 nonce, bytes revertReason) 1552 | func (_EntryPoint *EntryPointFilterer) ParseUserOperationRevertReason(log types.Log) (*EntryPointUserOperationRevertReason, error) { 1553 | event := new(EntryPointUserOperationRevertReason) 1554 | if err := _EntryPoint.contract.UnpackLog(event, "UserOperationRevertReason", log); err != nil { 1555 | return nil, err 1556 | } 1557 | event.Raw = log 1558 | return event, nil 1559 | } 1560 | 1561 | // EntryPointWithdrawnIterator is returned from FilterWithdrawn and is used to iterate over the raw logs and unpacked data for Withdrawn events raised by the EntryPoint contract. 1562 | type EntryPointWithdrawnIterator struct { 1563 | Event *EntryPointWithdrawn // Event containing the contract specifics and raw log 1564 | 1565 | contract *bind.BoundContract // Generic contract to use for unpacking event data 1566 | event string // Event name to use for unpacking event data 1567 | 1568 | logs chan types.Log // Log channel receiving the found contract events 1569 | sub ethereum.Subscription // Subscription for errors, completion and termination 1570 | done bool // Whether the subscription completed delivering logs 1571 | fail error // Occurred error to stop iteration 1572 | } 1573 | 1574 | // Next advances the iterator to the subsequent event, returning whether there 1575 | // are any more events found. In case of a retrieval or parsing error, false is 1576 | // returned and Error() can be queried for the exact failure. 1577 | func (it *EntryPointWithdrawnIterator) Next() bool { 1578 | // If the iterator failed, stop iterating 1579 | if it.fail != nil { 1580 | return false 1581 | } 1582 | // If the iterator completed, deliver directly whatever's available 1583 | if it.done { 1584 | select { 1585 | case log := <-it.logs: 1586 | it.Event = new(EntryPointWithdrawn) 1587 | if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1588 | it.fail = err 1589 | return false 1590 | } 1591 | it.Event.Raw = log 1592 | return true 1593 | 1594 | default: 1595 | return false 1596 | } 1597 | } 1598 | // Iterator still in progress, wait for either a data or an error event 1599 | select { 1600 | case log := <-it.logs: 1601 | it.Event = new(EntryPointWithdrawn) 1602 | if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1603 | it.fail = err 1604 | return false 1605 | } 1606 | it.Event.Raw = log 1607 | return true 1608 | 1609 | case err := <-it.sub.Err(): 1610 | it.done = true 1611 | it.fail = err 1612 | return it.Next() 1613 | } 1614 | } 1615 | 1616 | // Error returns any retrieval or parsing error occurred during filtering. 1617 | func (it *EntryPointWithdrawnIterator) Error() error { 1618 | return it.fail 1619 | } 1620 | 1621 | // Close terminates the iteration process, releasing any pending underlying 1622 | // resources. 1623 | func (it *EntryPointWithdrawnIterator) Close() error { 1624 | it.sub.Unsubscribe() 1625 | return nil 1626 | } 1627 | 1628 | // EntryPointWithdrawn represents a Withdrawn event raised by the EntryPoint contract. 1629 | type EntryPointWithdrawn struct { 1630 | Account common.Address 1631 | WithdrawAddress common.Address 1632 | WithdrawAmount *big.Int 1633 | Raw types.Log // Blockchain specific contextual infos 1634 | } 1635 | 1636 | // FilterWithdrawn is a free log retrieval operation binding the contract event 0xd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb. 1637 | // 1638 | // Solidity: event Withdrawn(address indexed account, address withdrawAddress, uint256 withdrawAmount) 1639 | func (_EntryPoint *EntryPointFilterer) FilterWithdrawn(opts *bind.FilterOpts, account []common.Address) (*EntryPointWithdrawnIterator, error) { 1640 | 1641 | var accountRule []interface{} 1642 | for _, accountItem := range account { 1643 | accountRule = append(accountRule, accountItem) 1644 | } 1645 | 1646 | logs, sub, err := _EntryPoint.contract.FilterLogs(opts, "Withdrawn", accountRule) 1647 | if err != nil { 1648 | return nil, err 1649 | } 1650 | return &EntryPointWithdrawnIterator{contract: _EntryPoint.contract, event: "Withdrawn", logs: logs, sub: sub}, nil 1651 | } 1652 | 1653 | // WatchWithdrawn is a free log subscription operation binding the contract event 0xd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb. 1654 | // 1655 | // Solidity: event Withdrawn(address indexed account, address withdrawAddress, uint256 withdrawAmount) 1656 | func (_EntryPoint *EntryPointFilterer) WatchWithdrawn(opts *bind.WatchOpts, sink chan<- *EntryPointWithdrawn, account []common.Address) (event.Subscription, error) { 1657 | 1658 | var accountRule []interface{} 1659 | for _, accountItem := range account { 1660 | accountRule = append(accountRule, accountItem) 1661 | } 1662 | 1663 | logs, sub, err := _EntryPoint.contract.WatchLogs(opts, "Withdrawn", accountRule) 1664 | if err != nil { 1665 | return nil, err 1666 | } 1667 | return event.NewSubscription(func(quit <-chan struct{}) error { 1668 | defer sub.Unsubscribe() 1669 | for { 1670 | select { 1671 | case log := <-logs: 1672 | // New log arrived, parse the event and forward to the user 1673 | event := new(EntryPointWithdrawn) 1674 | if err := _EntryPoint.contract.UnpackLog(event, "Withdrawn", log); err != nil { 1675 | return err 1676 | } 1677 | event.Raw = log 1678 | 1679 | select { 1680 | case sink <- event: 1681 | case err := <-sub.Err(): 1682 | return err 1683 | case <-quit: 1684 | return nil 1685 | } 1686 | case err := <-sub.Err(): 1687 | return err 1688 | case <-quit: 1689 | return nil 1690 | } 1691 | } 1692 | }), nil 1693 | } 1694 | 1695 | // ParseWithdrawn is a log parse operation binding the contract event 0xd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb. 1696 | // 1697 | // Solidity: event Withdrawn(address indexed account, address withdrawAddress, uint256 withdrawAmount) 1698 | func (_EntryPoint *EntryPointFilterer) ParseWithdrawn(log types.Log) (*EntryPointWithdrawn, error) { 1699 | event := new(EntryPointWithdrawn) 1700 | if err := _EntryPoint.contract.UnpackLog(event, "Withdrawn", log); err != nil { 1701 | return nil, err 1702 | } 1703 | event.Raw = log 1704 | return event, nil 1705 | } 1706 | --------------------------------------------------------------------------------