diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..63d138e1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,108 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Do not upload secrets or keys! +.secrets +.infurakey + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port diff --git a/README.md b/README.md index 2a15c740..3edafdda 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ +# exactly-private +Repo privado para resolver el challenge de Solidity + # Smart Contract Challenge ## A) Challenge diff --git a/build/contracts/ETHpool.json b/build/contracts/ETHpool.json new file mode 100644 index 00000000..e741d6d4 --- /dev/null +++ b/build/contracts/ETHpool.json @@ -0,0 +1,13737 @@ +{ + "contractName": "ETHpool", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_poolBalance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_rewards", + "type": "uint256" + } + ], + "name": "DepositRewardsEvent", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_from", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "name": "StakeEvent", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "name": "WithdrawEvent", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "Team", + "outputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "bool", + "name": "_role", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "UserList", + "outputs": [ + { + "internalType": "uint256", + "name": "_currentBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_compositionAtStartStaking", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_timeStaking", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "poolStatus", + "outputs": [ + { + "internalType": "uint256", + "name": "poolBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rewardsBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastRewardMultiplied", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rewardsCount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastRewardTime", + "type": "uint256" + }, + { + "internalType": "enum ETHpool.State", + "name": "status", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "DepositRewards", + "outputs": [ + { + "internalType": "uint256", + "name": "poolbalance", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function", + "payable": true + }, + { + "inputs": [], + "name": "Stake", + "outputs": [], + "stateMutability": "payable", + "type": "function", + "payable": true + }, + { + "inputs": [], + "name": "Withdraw", + "outputs": [ + { + "internalType": "uint256", + "name": "sent", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "computeRewards", + "outputs": [ + { + "internalType": "uint256", + "name": "withdrawable", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "pausePool", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "endPool", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumePool", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "teamAddress", + "type": "address" + }, + { + "internalType": "bool", + "name": "role", + "type": "bool" + } + ], + "name": "modifyTeam", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_poolBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_rewards\",\"type\":\"uint256\"}],\"name\":\"DepositRewardsEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"StakeEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"WithdrawEvent\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DepositRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolbalance\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"Stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"Team\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_role\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"UserList\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_currentBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_compositionAtStartStaking\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_timeStaking\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"Withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"sent\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"computeRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawable\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endPool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"role\",\"type\":\"bool\"}],\"name\":\"modifyTeam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pausePool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardsBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastRewardMultiplied\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastRewardTime\",\"type\":\"uint256\"},{\"internalType\":\"enum ETHpool.State\",\"name\":\"status\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumePool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/ETHpool.sol\":\"ETHpool\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/ETHpool.sol\":{\"keccak256\":\"0xdd4e422026de0b9930a62fdb43d49a980e4eccf12cc9d1322ccc572389d78432\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0d38d063ce9e2d4de30a5e18537bd27a3049dd64188e90c8335536fd607de31f\",\"dweb:/ipfs/QmW41kAnHq49YnHvUTztKWNWxJZ6vgKMp3jYryFEW3GqgR\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5060018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff0219169083151502179055506000600260050160006101000a81548160ff02191690836002811115610094576100936100c9565b5b0217905550600060026000018190555060006002600101819055506000600280018190555060006002600301819055506100f8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b611b6b806101076000396000f3fe6080604052600436106100a75760003560e01c8063ac0679a611610064578063ac0679a614610172578063b9ba5f8b1461019b578063d515b1ce146101b9578063de20bc92146101f7578063eb63a59e14610201578063f022869214610240576100a7565b806306fdde03146100ac57806311ec106b146100d75780632d42cf7d146100ee57806357ea89b6146101055780637c1b7f8a14610130578063aa09d5b71461015b575b600080fd5b3480156100b857600080fd5b506100c1610270565b6040516100ce9190611301565b60405180910390f35b3480156100e357600080fd5b506100ec6102a9565b005b3480156100fa57600080fd5b5061010361036f565b005b34801561011157600080fd5b5061011a610434565b604051610127919061133c565b60405180910390f35b34801561013c57600080fd5b50610145610750565b604051610152919061133c565b60405180910390f35b34801561016757600080fd5b5061017061088a565b005b34801561017e57600080fd5b50610199600480360381019061019491906113f2565b610950565b005b6101a3610a44565b6040516101b0919061133c565b60405180910390f35b3480156101c557600080fd5b506101e060048036038101906101db9190611432565b610d2c565b6040516101ee92919061146e565b60405180910390f35b6101ff610de5565b005b34801561020d57600080fd5b5061022860048036038101906102239190611432565b611207565b6040516102379392919061149e565b60405180910390f35b34801561024c57600080fd5b50610255611231565b6040516102679695949392919061154c565b60405180910390f35b6040518060400160405280600781526020017f455448706f6f6c0000000000000000000000000000000000000000000000000081525081565b60011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff1615151461033f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103369061161f565b60405180910390fd5b6000600260050160006101000a81548160ff02191690836002811115610368576103676114d5565b5b0217905550565b60011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514610405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103fc9061161f565b60405180910390fd5b60028060050160006101000a81548160ff0219169083600281111561042d5761042c6114d5565b5b0217905550565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154116104b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b0906116b1565b60405180910390fd5b600160028111156104cd576104cc6114d5565b5b600260050160009054906101000a900460ff1660028111156104f2576104f16114d5565b5b03610532576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052990611743565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490506000610582610750565b9050600081836105929190611792565b905082600260000160008282546105a991906117e8565b9250508190555081600260010160008282546105c591906117e8565b9250508190555060008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050156106ff576000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000808201600090556001820160009055600282016000905550503373ffffffffffffffffffffffffffffffffffffffff167f5dba113b49cfa7c90315e8e604e6b506f7abcb909b01dcb19ec39005086e68fc826040516106ec919061133c565b60405180910390a280935050505061074d565b826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600093505050505b90565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154116107d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cc906116b1565b60405180910390fd5b678ac7230489e800006000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600280015461082f91906117e8565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461087b919061181c565b61088591906118a5565b905090565b60011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514610920576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109179061161f565b60405180910390fd5b6001600260050160006101000a81548160ff02191690836002811115610949576109486114d5565b5b0217905550565b60011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff161515146109e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dd9061161f565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff0219169083151502179055505050565b600060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514610adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad39061161f565b60405180910390fd5b60016002811115610af057610aef6114d5565b5b600260050160009054906101000a900460ff166002811115610b1557610b146114d5565b5b03610b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4c90611743565b60405180910390fd5b600280811115610b6857610b676114d5565b5b600260050160009054906101000a900460ff166002811115610b8d57610b8c6114d5565b5b03610bcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc490611948565b60405180910390fd5b60003411610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c07906119b4565b60405180910390fd5b600060026000015414610ca35742600260040181905550600260000154678ac7230489e8000034610c41919061181c565b610c4b91906118a5565b600280016000828254610c5e9190611792565b925050819055503460026001016000828254610c7a9190611792565b92505081905550600160026003016000828254610c979190611792565b92505081905550610cde565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd590611a20565b60405180910390fd5b7f277795e41191c7435317bb3d7b4884a9412d1a36f88b2a6053edbdf534a88e02600260000154600260010154604051610d19929190611a40565b60405180910390a1600260000154905090565b6001602052806000526040600020600091509050806000018054610d4f90611a98565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7b90611a98565b8015610dc85780601f10610d9d57610100808354040283529160200191610dc8565b820191906000526020600020905b815481529060010190602001808311610dab57829003601f168201915b5050505050908060010160009054906101000a900460ff16905082565b60016002811115610df957610df86114d5565b5b600260050160009054906101000a900460ff166002811115610e1e57610e1d6114d5565b5b03610e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5590611743565b60405180910390fd5b600280811115610e7157610e706114d5565b5b600260050160009054906101000a900460ff166002811115610e9657610e956114d5565b5b03610ed6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecd90611948565b60405180910390fd5b60003411610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1090611b15565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001540361105957346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555060028001546000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550426000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550346002600001600082825461104d9190611792565b92505081905550611176565b600034611064610750565b61106e9190611792565b9050806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546110c19190611792565b9250508190555060028001546000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550426000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550806002600001600082825461116d9190611792565b92505081905550505b3373ffffffffffffffffffffffffffffffffffffffff167fb58845b0a64f92dd8d1ba04f905319d6be2021b57783b3d10155e7e36a84e1286000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546040516111fd919061133c565b60405180910390a2565b60006020528060005260406000206000915090508060000154908060010154908060020154905083565b60028060000154908060010154908060020154908060030154908060040154908060050160009054906101000a900460ff16905086565b600081519050919050565b600082825260208201905092915050565b60005b838110156112a2578082015181840152602081019050611287565b838111156112b1576000848401525b50505050565b6000601f19601f8301169050919050565b60006112d382611268565b6112dd8185611273565b93506112ed818560208601611284565b6112f6816112b7565b840191505092915050565b6000602082019050818103600083015261131b81846112c8565b905092915050565b6000819050919050565b61133681611323565b82525050565b6000602082019050611351600083018461132d565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006113878261135c565b9050919050565b6113978161137c565b81146113a257600080fd5b50565b6000813590506113b48161138e565b92915050565b60008115159050919050565b6113cf816113ba565b81146113da57600080fd5b50565b6000813590506113ec816113c6565b92915050565b6000806040838503121561140957611408611357565b5b6000611417858286016113a5565b9250506020611428858286016113dd565b9150509250929050565b60006020828403121561144857611447611357565b5b6000611456848285016113a5565b91505092915050565b611468816113ba565b82525050565b6000604082019050818103600083015261148881856112c8565b9050611497602083018461145f565b9392505050565b60006060820190506114b3600083018661132d565b6114c0602083018561132d565b6114cd604083018461132d565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60038110611515576115146114d5565b5b50565b600081905061152682611504565b919050565b600061153682611518565b9050919050565b6115468161152b565b82525050565b600060c082019050611561600083018961132d565b61156e602083018861132d565b61157b604083018761132d565b611588606083018661132d565b611595608083018561132d565b6115a260a083018461153d565b979650505050505050565b7f4f6e6c7920746865205465616d2063616e2063616c6c20746869732066756e6360008201527f74696f6e2e000000000000000000000000000000000000000000000000000000602082015250565b6000611609602583611273565b9150611614826115ad565b604082019050919050565b60006020820190508181036000830152611638816115fc565b9050919050565b7f4f6e6c79207374616b65686f6c646572732063616e207573652074686973206660008201527f756e6374696f6e2e000000000000000000000000000000000000000000000000602082015250565b600061169b602883611273565b91506116a68261163f565b604082019050919050565b600060208201905081810360008301526116ca8161168e565b9050919050565b7f455448706f6f6c206973207061757365642e2054686973206f7065726174696f60008201527f6e206973206e6f7420616c6c6f7765642e000000000000000000000000000000602082015250565b600061172d603183611273565b9150611738826116d1565b604082019050919050565b6000602082019050818103600083015261175c81611720565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061179d82611323565b91506117a883611323565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117dd576117dc611763565b5b828201905092915050565b60006117f382611323565b91506117fe83611323565b92508282101561181157611810611763565b5b828203905092915050565b600061182782611323565b915061183283611323565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561186b5761186a611763565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006118b082611323565b91506118bb83611323565b9250826118cb576118ca611876565b5b828204905092915050565b7f455448706f6f6c20697320656e6465642e204f6e6c792077697468647261776160008201527f6c7320616c6c6f7765642e000000000000000000000000000000000000000000602082015250565b6000611932602b83611273565b915061193d826118d6565b604082019050919050565b6000602082019050818103600083015261196181611925565b9050919050565b7f52657761726473206d7573742062652067726561746572207468616e20302e00600082015250565b600061199e601f83611273565b91506119a982611968565b602082019050919050565b600060208201905081810360008301526119cd81611991565b9050919050565b7f506f6f6c20697320656d70747921000000000000000000000000000000000000600082015250565b6000611a0a600e83611273565b9150611a15826119d4565b602082019050919050565b60006020820190508181036000830152611a39816119fd565b9050919050565b6000604082019050611a55600083018561132d565b611a62602083018461132d565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611ab057607f821691505b602082108103611ac357611ac2611a69565b5b50919050565b7f5374616b65206d7573742062652067726561746572207468616e20302e000000600082015250565b6000611aff601d83611273565b9150611b0a82611ac9565b602082019050919050565b60006020820190508181036000830152611b2e81611af2565b905091905056fea26469706673582212205b03ba226102038fc2feae40772e275928588c8426f9a74e6fc0d25ad32ffda364736f6c634300080d0033", + "deployedBytecode": "0x6080604052600436106100a75760003560e01c8063ac0679a611610064578063ac0679a614610172578063b9ba5f8b1461019b578063d515b1ce146101b9578063de20bc92146101f7578063eb63a59e14610201578063f022869214610240576100a7565b806306fdde03146100ac57806311ec106b146100d75780632d42cf7d146100ee57806357ea89b6146101055780637c1b7f8a14610130578063aa09d5b71461015b575b600080fd5b3480156100b857600080fd5b506100c1610270565b6040516100ce9190611301565b60405180910390f35b3480156100e357600080fd5b506100ec6102a9565b005b3480156100fa57600080fd5b5061010361036f565b005b34801561011157600080fd5b5061011a610434565b604051610127919061133c565b60405180910390f35b34801561013c57600080fd5b50610145610750565b604051610152919061133c565b60405180910390f35b34801561016757600080fd5b5061017061088a565b005b34801561017e57600080fd5b50610199600480360381019061019491906113f2565b610950565b005b6101a3610a44565b6040516101b0919061133c565b60405180910390f35b3480156101c557600080fd5b506101e060048036038101906101db9190611432565b610d2c565b6040516101ee92919061146e565b60405180910390f35b6101ff610de5565b005b34801561020d57600080fd5b5061022860048036038101906102239190611432565b611207565b6040516102379392919061149e565b60405180910390f35b34801561024c57600080fd5b50610255611231565b6040516102679695949392919061154c565b60405180910390f35b6040518060400160405280600781526020017f455448706f6f6c0000000000000000000000000000000000000000000000000081525081565b60011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff1615151461033f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103369061161f565b60405180910390fd5b6000600260050160006101000a81548160ff02191690836002811115610368576103676114d5565b5b0217905550565b60011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514610405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103fc9061161f565b60405180910390fd5b60028060050160006101000a81548160ff0219169083600281111561042d5761042c6114d5565b5b0217905550565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154116104b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b0906116b1565b60405180910390fd5b600160028111156104cd576104cc6114d5565b5b600260050160009054906101000a900460ff1660028111156104f2576104f16114d5565b5b03610532576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052990611743565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490506000610582610750565b9050600081836105929190611792565b905082600260000160008282546105a991906117e8565b9250508190555081600260010160008282546105c591906117e8565b9250508190555060008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050156106ff576000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000808201600090556001820160009055600282016000905550503373ffffffffffffffffffffffffffffffffffffffff167f5dba113b49cfa7c90315e8e604e6b506f7abcb909b01dcb19ec39005086e68fc826040516106ec919061133c565b60405180910390a280935050505061074d565b826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600093505050505b90565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154116107d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cc906116b1565b60405180910390fd5b678ac7230489e800006000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600280015461082f91906117e8565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461087b919061181c565b61088591906118a5565b905090565b60011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514610920576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109179061161f565b60405180910390fd5b6001600260050160006101000a81548160ff02191690836002811115610949576109486114d5565b5b0217905550565b60011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff161515146109e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dd9061161f565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff0219169083151502179055505050565b600060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514610adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad39061161f565b60405180910390fd5b60016002811115610af057610aef6114d5565b5b600260050160009054906101000a900460ff166002811115610b1557610b146114d5565b5b03610b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4c90611743565b60405180910390fd5b600280811115610b6857610b676114d5565b5b600260050160009054906101000a900460ff166002811115610b8d57610b8c6114d5565b5b03610bcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc490611948565b60405180910390fd5b60003411610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c07906119b4565b60405180910390fd5b600060026000015414610ca35742600260040181905550600260000154678ac7230489e8000034610c41919061181c565b610c4b91906118a5565b600280016000828254610c5e9190611792565b925050819055503460026001016000828254610c7a9190611792565b92505081905550600160026003016000828254610c979190611792565b92505081905550610cde565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd590611a20565b60405180910390fd5b7f277795e41191c7435317bb3d7b4884a9412d1a36f88b2a6053edbdf534a88e02600260000154600260010154604051610d19929190611a40565b60405180910390a1600260000154905090565b6001602052806000526040600020600091509050806000018054610d4f90611a98565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7b90611a98565b8015610dc85780601f10610d9d57610100808354040283529160200191610dc8565b820191906000526020600020905b815481529060010190602001808311610dab57829003601f168201915b5050505050908060010160009054906101000a900460ff16905082565b60016002811115610df957610df86114d5565b5b600260050160009054906101000a900460ff166002811115610e1e57610e1d6114d5565b5b03610e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5590611743565b60405180910390fd5b600280811115610e7157610e706114d5565b5b600260050160009054906101000a900460ff166002811115610e9657610e956114d5565b5b03610ed6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecd90611948565b60405180910390fd5b60003411610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1090611b15565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001540361105957346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555060028001546000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550426000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550346002600001600082825461104d9190611792565b92505081905550611176565b600034611064610750565b61106e9190611792565b9050806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546110c19190611792565b9250508190555060028001546000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550426000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550806002600001600082825461116d9190611792565b92505081905550505b3373ffffffffffffffffffffffffffffffffffffffff167fb58845b0a64f92dd8d1ba04f905319d6be2021b57783b3d10155e7e36a84e1286000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546040516111fd919061133c565b60405180910390a2565b60006020528060005260406000206000915090508060000154908060010154908060020154905083565b60028060000154908060010154908060020154908060030154908060040154908060050160009054906101000a900460ff16905086565b600081519050919050565b600082825260208201905092915050565b60005b838110156112a2578082015181840152602081019050611287565b838111156112b1576000848401525b50505050565b6000601f19601f8301169050919050565b60006112d382611268565b6112dd8185611273565b93506112ed818560208601611284565b6112f6816112b7565b840191505092915050565b6000602082019050818103600083015261131b81846112c8565b905092915050565b6000819050919050565b61133681611323565b82525050565b6000602082019050611351600083018461132d565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006113878261135c565b9050919050565b6113978161137c565b81146113a257600080fd5b50565b6000813590506113b48161138e565b92915050565b60008115159050919050565b6113cf816113ba565b81146113da57600080fd5b50565b6000813590506113ec816113c6565b92915050565b6000806040838503121561140957611408611357565b5b6000611417858286016113a5565b9250506020611428858286016113dd565b9150509250929050565b60006020828403121561144857611447611357565b5b6000611456848285016113a5565b91505092915050565b611468816113ba565b82525050565b6000604082019050818103600083015261148881856112c8565b9050611497602083018461145f565b9392505050565b60006060820190506114b3600083018661132d565b6114c0602083018561132d565b6114cd604083018461132d565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60038110611515576115146114d5565b5b50565b600081905061152682611504565b919050565b600061153682611518565b9050919050565b6115468161152b565b82525050565b600060c082019050611561600083018961132d565b61156e602083018861132d565b61157b604083018761132d565b611588606083018661132d565b611595608083018561132d565b6115a260a083018461153d565b979650505050505050565b7f4f6e6c7920746865205465616d2063616e2063616c6c20746869732066756e6360008201527f74696f6e2e000000000000000000000000000000000000000000000000000000602082015250565b6000611609602583611273565b9150611614826115ad565b604082019050919050565b60006020820190508181036000830152611638816115fc565b9050919050565b7f4f6e6c79207374616b65686f6c646572732063616e207573652074686973206660008201527f756e6374696f6e2e000000000000000000000000000000000000000000000000602082015250565b600061169b602883611273565b91506116a68261163f565b604082019050919050565b600060208201905081810360008301526116ca8161168e565b9050919050565b7f455448706f6f6c206973207061757365642e2054686973206f7065726174696f60008201527f6e206973206e6f7420616c6c6f7765642e000000000000000000000000000000602082015250565b600061172d603183611273565b9150611738826116d1565b604082019050919050565b6000602082019050818103600083015261175c81611720565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061179d82611323565b91506117a883611323565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117dd576117dc611763565b5b828201905092915050565b60006117f382611323565b91506117fe83611323565b92508282101561181157611810611763565b5b828203905092915050565b600061182782611323565b915061183283611323565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561186b5761186a611763565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006118b082611323565b91506118bb83611323565b9250826118cb576118ca611876565b5b828204905092915050565b7f455448706f6f6c20697320656e6465642e204f6e6c792077697468647261776160008201527f6c7320616c6c6f7765642e000000000000000000000000000000000000000000602082015250565b6000611932602b83611273565b915061193d826118d6565b604082019050919050565b6000602082019050818103600083015261196181611925565b9050919050565b7f52657761726473206d7573742062652067726561746572207468616e20302e00600082015250565b600061199e601f83611273565b91506119a982611968565b602082019050919050565b600060208201905081810360008301526119cd81611991565b9050919050565b7f506f6f6c20697320656d70747921000000000000000000000000000000000000600082015250565b6000611a0a600e83611273565b9150611a15826119d4565b602082019050919050565b60006020820190508181036000830152611a39816119fd565b9050919050565b6000604082019050611a55600083018561132d565b611a62602083018461132d565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611ab057607f821691505b602082108103611ac357611ac2611a69565b5b50919050565b7f5374616b65206d7573742062652067726561746572207468616e20302e000000600082015250565b6000611aff601d83611273565b9150611b0a82611ac9565b602082019050919050565b60006020820190508181036000830152611b2e81611af2565b905091905056fea26469706673582212205b03ba226102038fc2feae40772e275928588c8426f9a74e6fc0d25ad32ffda364736f6c634300080d0033", + "immutableReferences": {}, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:190:2", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "35:152:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "52:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55:77:2", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "45:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "45:88:2" + }, + "nodeType": "YulExpressionStatement", + "src": "45:88:2" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "149:1:2", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "152:4:2", + "type": "", + "value": "0x21" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "142:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "142:15:2" + }, + "nodeType": "YulExpressionStatement", + "src": "142:15:2" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "173:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "176:4:2", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "166:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "166:15:2" + }, + "nodeType": "YulExpressionStatement", + "src": "166:15:2" + } + ] + }, + "name": "panic_error_0x21", + "nodeType": "YulFunctionDefinition", + "src": "7:180:2" + } + ] + }, + "contents": "{\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n}\n", + "id": 2, + "language": "Yul", + "name": "#utility.yul" + } + ], + "deployedGeneratedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:15650:2", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:2", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:2" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:2" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:2" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:2" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:2", + "type": "" + } + ], + "src": "7:99:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:2" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:2" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:2" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:2", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:2", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:2" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:2" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:2", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:2", + "type": "" + } + ], + "src": "112:169:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "336:258:2", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "346:10:2", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "355:1:2", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "350:1:2", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "415:63:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "440:3:2" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "445:1:2" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "436:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "436:11:2" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "459:3:2" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "464:1:2" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "455:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "455:11:2" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "449:5:2" + }, + "nodeType": "YulFunctionCall", + "src": "449:18:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "429:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "429:39:2" + }, + "nodeType": "YulExpressionStatement", + "src": "429:39:2" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "376:1:2" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "379:6:2" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "373:2:2" + }, + "nodeType": "YulFunctionCall", + "src": "373:13:2" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "387:19:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:15:2", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "398:1:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "401:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "394:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "394:10:2" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:2" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "369:3:2", + "statements": [] + }, + "src": "365:113:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "512:76:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "562:3:2" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "567:6:2" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "558:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "558:16:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "576:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "551:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "551:27:2" + }, + "nodeType": "YulExpressionStatement", + "src": "551:27:2" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "493:1:2" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "496:6:2" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "490:2:2" + }, + "nodeType": "YulFunctionCall", + "src": "490:13:2" + }, + "nodeType": "YulIf", + "src": "487:101:2" + } + ] + }, + "name": "copy_memory_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "318:3:2", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "323:3:2", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "328:6:2", + "type": "" + } + ], + "src": "287:307:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "648:54:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "658:38:2", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "676:5:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "683:2:2", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "672:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "672:14:2" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "692:2:2", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "688:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "688:7:2" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "668:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "668:28:2" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "658:6:2" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "631:5:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "641:6:2", + "type": "" + } + ], + "src": "600:102:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "800:272:2", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "810:53:2", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "857:5:2" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "824:32:2" + }, + "nodeType": "YulFunctionCall", + "src": "824:39:2" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "814:6:2", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "872:78:2", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "938:3:2" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "943:6:2" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "879:58:2" + }, + "nodeType": "YulFunctionCall", + "src": "879:71:2" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "872:3:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "985:5:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "992:4:2", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "981:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "981:16:2" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "999:3:2" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1004:6:2" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "959:21:2" + }, + "nodeType": "YulFunctionCall", + "src": "959:52:2" + }, + "nodeType": "YulExpressionStatement", + "src": "959:52:2" + }, + { + "nodeType": "YulAssignment", + "src": "1020:46:2", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1031:3:2" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1058:6:2" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "1036:21:2" + }, + "nodeType": "YulFunctionCall", + "src": "1036:29:2" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1027:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "1027:39:2" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1020:3:2" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "781:5:2", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "788:3:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "796:3:2", + "type": "" + } + ], + "src": "708:364:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1196:195:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1206:26:2", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1218:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1229:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1214:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "1214:18:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1206:4:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1253:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1264:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1249:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "1249:17:2" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1272:4:2" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1278:9:2" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1268:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "1268:20:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1242:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "1242:47:2" + }, + "nodeType": "YulExpressionStatement", + "src": "1242:47:2" + }, + { + "nodeType": "YulAssignment", + "src": "1298:86:2", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1370:6:2" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1379:4:2" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1306:63:2" + }, + "nodeType": "YulFunctionCall", + "src": "1306:78:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1298:4:2" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1168:9:2", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1180:6:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1191:4:2", + "type": "" + } + ], + "src": "1078:313:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1442:32:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1452:16:2", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1463:5:2" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1452:7:2" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1424:5:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1434:7:2", + "type": "" + } + ], + "src": "1397:77:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1545:53:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1562:3:2" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1585:5:2" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1567:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "1567:24:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1555:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "1555:37:2" + }, + "nodeType": "YulExpressionStatement", + "src": "1555:37:2" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1533:5:2", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1540:3:2", + "type": "" + } + ], + "src": "1480:118:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1702:124:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1712:26:2", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1724:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1735:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1720:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "1720:18:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1712:4:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1792:6:2" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1805:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1816:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1801:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "1801:17:2" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "1748:43:2" + }, + "nodeType": "YulFunctionCall", + "src": "1748:71:2" + }, + "nodeType": "YulExpressionStatement", + "src": "1748:71:2" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1674:9:2", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1686:6:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1697:4:2", + "type": "" + } + ], + "src": "1604:222:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1872:35:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1882:19:2", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1898:2:2", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1892:5:2" + }, + "nodeType": "YulFunctionCall", + "src": "1892:9:2" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1882:6:2" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1865:6:2", + "type": "" + } + ], + "src": "1832:75:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2002:28:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:2" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:2" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1913:117:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2125:28:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2142:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2145:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2135:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "2135:12:2" + }, + "nodeType": "YulExpressionStatement", + "src": "2135:12:2" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "2036:117:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2204:81:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2214:65:2", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2229:5:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2236:42:2", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2225:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "2225:54:2" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2214:7:2" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2186:5:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2196:7:2", + "type": "" + } + ], + "src": "2159:126:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2336:51:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2346:35:2", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2375:5:2" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "2357:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "2357:24:2" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2346:7:2" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2318:5:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2328:7:2", + "type": "" + } + ], + "src": "2291:96:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2436:79:2", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2493:16:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2502:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2505:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2495:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "2495:12:2" + }, + "nodeType": "YulExpressionStatement", + "src": "2495:12:2" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2459:5:2" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2484:5:2" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "2466:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "2466:24:2" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2456:2:2" + }, + "nodeType": "YulFunctionCall", + "src": "2456:35:2" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2449:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "2449:43:2" + }, + "nodeType": "YulIf", + "src": "2446:63:2" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2429:5:2", + "type": "" + } + ], + "src": "2393:122:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2573:87:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2583:29:2", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2605:6:2" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2592:12:2" + }, + "nodeType": "YulFunctionCall", + "src": "2592:20:2" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2583:5:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2648:5:2" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2621:26:2" + }, + "nodeType": "YulFunctionCall", + "src": "2621:33:2" + }, + "nodeType": "YulExpressionStatement", + "src": "2621:33:2" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2551:6:2", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2559:3:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2567:5:2", + "type": "" + } + ], + "src": "2521:139:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2708:48:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2718:32:2", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2743:5:2" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2736:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "2736:13:2" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2729:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "2729:21:2" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2718:7:2" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2690:5:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2700:7:2", + "type": "" + } + ], + "src": "2666:90:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2802:76:2", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2856:16:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2865:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2868:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2858:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "2858:12:2" + }, + "nodeType": "YulExpressionStatement", + "src": "2858:12:2" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2825:5:2" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2847:5:2" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "2832:14:2" + }, + "nodeType": "YulFunctionCall", + "src": "2832:21:2" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2822:2:2" + }, + "nodeType": "YulFunctionCall", + "src": "2822:32:2" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2815:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "2815:40:2" + }, + "nodeType": "YulIf", + "src": "2812:60:2" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2795:5:2", + "type": "" + } + ], + "src": "2762:116:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2933:84:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2943:29:2", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2965:6:2" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2952:12:2" + }, + "nodeType": "YulFunctionCall", + "src": "2952:20:2" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2943:5:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3005:5:2" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "2981:23:2" + }, + "nodeType": "YulFunctionCall", + "src": "2981:30:2" + }, + "nodeType": "YulExpressionStatement", + "src": "2981:30:2" + } + ] + }, + "name": "abi_decode_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2911:6:2", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2919:3:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2927:5:2", + "type": "" + } + ], + "src": "2884:133:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3103:388:2", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3149:83:2", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3151:77:2" + }, + "nodeType": "YulFunctionCall", + "src": "3151:79:2" + }, + "nodeType": "YulExpressionStatement", + "src": "3151:79:2" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3124:7:2" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3133:9:2" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3120:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "3120:23:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3145:2:2", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3116:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "3116:32:2" + }, + "nodeType": "YulIf", + "src": "3113:119:2" + }, + { + "nodeType": "YulBlock", + "src": "3242:117:2", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3257:15:2", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3271:1:2", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3261:6:2", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3286:63:2", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3321:9:2" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3332:6:2" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3317:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "3317:22:2" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3341:7:2" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3296:20:2" + }, + "nodeType": "YulFunctionCall", + "src": "3296:53:2" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3286:6:2" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3369:115:2", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3384:16:2", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3398:2:2", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3388:6:2", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3414:60:2", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3446:9:2" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3457:6:2" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3442:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "3442:22:2" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3466:7:2" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "3424:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "3424:50:2" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3414:6:2" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3065:9:2", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3076:7:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3088:6:2", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3096:6:2", + "type": "" + } + ], + "src": "3023:468:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3563:263:2", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3609:83:2", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3611:77:2" + }, + "nodeType": "YulFunctionCall", + "src": "3611:79:2" + }, + "nodeType": "YulExpressionStatement", + "src": "3611:79:2" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3584:7:2" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3593:9:2" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3580:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "3580:23:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3605:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3576:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "3576:32:2" + }, + "nodeType": "YulIf", + "src": "3573:119:2" + }, + { + "nodeType": "YulBlock", + "src": "3702:117:2", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3717:15:2", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3731:1:2", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3721:6:2", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3746:63:2", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3781:9:2" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3792:6:2" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3777:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "3777:22:2" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3801:7:2" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3756:20:2" + }, + "nodeType": "YulFunctionCall", + "src": "3756:53:2" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3746:6:2" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3533:9:2", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3544:7:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3556:6:2", + "type": "" + } + ], + "src": "3497:329:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3891:50:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3908:3:2" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3928:5:2" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3913:14:2" + }, + "nodeType": "YulFunctionCall", + "src": "3913:21:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3901:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "3901:34:2" + }, + "nodeType": "YulExpressionStatement", + "src": "3901:34:2" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3879:5:2", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3886:3:2", + "type": "" + } + ], + "src": "3832:109:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4087:271:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4097:26:2", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4109:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4120:2:2", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4105:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "4105:18:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4097:4:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4144:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4155:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4140:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "4140:17:2" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4163:4:2" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4169:9:2" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4159:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "4159:20:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4133:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "4133:47:2" + }, + "nodeType": "YulExpressionStatement", + "src": "4133:47:2" + }, + { + "nodeType": "YulAssignment", + "src": "4189:86:2", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4261:6:2" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4270:4:2" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "4197:63:2" + }, + "nodeType": "YulFunctionCall", + "src": "4197:78:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4189:4:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4323:6:2" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4336:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4347:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4332:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "4332:18:2" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "4285:37:2" + }, + "nodeType": "YulFunctionCall", + "src": "4285:66:2" + }, + "nodeType": "YulExpressionStatement", + "src": "4285:66:2" + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr_t_bool__to_t_string_memory_ptr_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4051:9:2", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "4063:6:2", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4071:6:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4082:4:2", + "type": "" + } + ], + "src": "3947:411:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4518:288:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4528:26:2", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4540:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4551:2:2", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4536:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "4536:18:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4528:4:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4608:6:2" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4621:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4632:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4617:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "4617:17:2" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "4564:43:2" + }, + "nodeType": "YulFunctionCall", + "src": "4564:71:2" + }, + "nodeType": "YulExpressionStatement", + "src": "4564:71:2" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4689:6:2" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4702:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4713:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4698:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "4698:18:2" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "4645:43:2" + }, + "nodeType": "YulFunctionCall", + "src": "4645:72:2" + }, + "nodeType": "YulExpressionStatement", + "src": "4645:72:2" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4771:6:2" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4784:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4795:2:2", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4780:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "4780:18:2" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "4727:43:2" + }, + "nodeType": "YulFunctionCall", + "src": "4727:72:2" + }, + "nodeType": "YulExpressionStatement", + "src": "4727:72:2" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4474:9:2", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "4486:6:2", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "4494:6:2", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4502:6:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4513:4:2", + "type": "" + } + ], + "src": "4364:442:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4840:152:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4857:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4860:77:2", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4850:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "4850:88:2" + }, + "nodeType": "YulExpressionStatement", + "src": "4850:88:2" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4954:1:2", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4957:4:2", + "type": "", + "value": "0x21" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4947:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "4947:15:2" + }, + "nodeType": "YulExpressionStatement", + "src": "4947:15:2" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4978:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4981:4:2", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4971:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "4971:15:2" + }, + "nodeType": "YulExpressionStatement", + "src": "4971:15:2" + } + ] + }, + "name": "panic_error_0x21", + "nodeType": "YulFunctionDefinition", + "src": "4812:180:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5048:62:2", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5082:22:2", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x21", + "nodeType": "YulIdentifier", + "src": "5084:16:2" + }, + "nodeType": "YulFunctionCall", + "src": "5084:18:2" + }, + "nodeType": "YulExpressionStatement", + "src": "5084:18:2" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5071:5:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5078:1:2", + "type": "", + "value": "3" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5068:2:2" + }, + "nodeType": "YulFunctionCall", + "src": "5068:12:2" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5061:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "5061:20:2" + }, + "nodeType": "YulIf", + "src": "5058:46:2" + } + ] + }, + "name": "validator_assert_t_enum$_State_$8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5041:5:2", + "type": "" + } + ], + "src": "4998:112:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5168:73:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5178:16:2", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5189:5:2" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5178:7:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5229:5:2" + } + ], + "functionName": { + "name": "validator_assert_t_enum$_State_$8", + "nodeType": "YulIdentifier", + "src": "5195:33:2" + }, + "nodeType": "YulFunctionCall", + "src": "5195:40:2" + }, + "nodeType": "YulExpressionStatement", + "src": "5195:40:2" + } + ] + }, + "name": "cleanup_t_enum$_State_$8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5150:5:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5160:7:2", + "type": "" + } + ], + "src": "5116:125:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5312:60:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5322:44:2", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5360:5:2" + } + ], + "functionName": { + "name": "cleanup_t_enum$_State_$8", + "nodeType": "YulIdentifier", + "src": "5335:24:2" + }, + "nodeType": "YulFunctionCall", + "src": "5335:31:2" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "5322:9:2" + } + ] + } + ] + }, + "name": "convert_t_enum$_State_$8_to_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5292:5:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "5302:9:2", + "type": "" + } + ], + "src": "5247:125:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5448:71:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5465:3:2" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5506:5:2" + } + ], + "functionName": { + "name": "convert_t_enum$_State_$8_to_t_uint8", + "nodeType": "YulIdentifier", + "src": "5470:35:2" + }, + "nodeType": "YulFunctionCall", + "src": "5470:42:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5458:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "5458:55:2" + }, + "nodeType": "YulExpressionStatement", + "src": "5458:55:2" + } + ] + }, + "name": "abi_encode_t_enum$_State_$8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5436:5:2", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5443:3:2", + "type": "" + } + ], + "src": "5378:141:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5768:542:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5778:27:2", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5790:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5801:3:2", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5786:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "5786:19:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5778:4:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5859:6:2" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5872:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5883:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5868:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "5868:17:2" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "5815:43:2" + }, + "nodeType": "YulFunctionCall", + "src": "5815:71:2" + }, + "nodeType": "YulExpressionStatement", + "src": "5815:71:2" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5940:6:2" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5953:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5964:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5949:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "5949:18:2" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "5896:43:2" + }, + "nodeType": "YulFunctionCall", + "src": "5896:72:2" + }, + "nodeType": "YulExpressionStatement", + "src": "5896:72:2" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6022:6:2" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6035:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6046:2:2", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6031:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "6031:18:2" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "5978:43:2" + }, + "nodeType": "YulFunctionCall", + "src": "5978:72:2" + }, + "nodeType": "YulExpressionStatement", + "src": "5978:72:2" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "6104:6:2" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6117:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6128:2:2", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6113:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "6113:18:2" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6060:43:2" + }, + "nodeType": "YulFunctionCall", + "src": "6060:72:2" + }, + "nodeType": "YulExpressionStatement", + "src": "6060:72:2" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "6186:6:2" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6199:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6210:3:2", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6195:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "6195:19:2" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6142:43:2" + }, + "nodeType": "YulFunctionCall", + "src": "6142:73:2" + }, + "nodeType": "YulExpressionStatement", + "src": "6142:73:2" + }, + { + "expression": { + "arguments": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "6274:6:2" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6287:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6298:3:2", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6283:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "6283:19:2" + } + ], + "functionName": { + "name": "abi_encode_t_enum$_State_$8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "6225:48:2" + }, + "nodeType": "YulFunctionCall", + "src": "6225:78:2" + }, + "nodeType": "YulExpressionStatement", + "src": "6225:78:2" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_enum$_State_$8__to_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5700:9:2", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "5712:6:2", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "5720:6:2", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "5728:6:2", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "5736:6:2", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5744:6:2", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5752:6:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5763:4:2", + "type": "" + } + ], + "src": "5525:785:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6422:118:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "6444:6:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6452:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6440:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "6440:14:2" + }, + { + "hexValue": "4f6e6c7920746865205465616d2063616e2063616c6c20746869732066756e63", + "kind": "string", + "nodeType": "YulLiteral", + "src": "6456:34:2", + "type": "", + "value": "Only the Team can call this func" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6433:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "6433:58:2" + }, + "nodeType": "YulExpressionStatement", + "src": "6433:58:2" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "6512:6:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6520:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6508:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "6508:15:2" + }, + { + "hexValue": "74696f6e2e", + "kind": "string", + "nodeType": "YulLiteral", + "src": "6525:7:2", + "type": "", + "value": "tion." + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6501:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "6501:32:2" + }, + "nodeType": "YulExpressionStatement", + "src": "6501:32:2" + } + ] + }, + "name": "store_literal_in_memory_77ce0874b137b60e93c01f56799e55f28d65db359f40d58d0f38dfc1b136e76f", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "6414:6:2", + "type": "" + } + ], + "src": "6316:224:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6692:220:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6702:74:2", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6768:3:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6773:2:2", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "6709:58:2" + }, + "nodeType": "YulFunctionCall", + "src": "6709:67:2" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6702:3:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6874:3:2" + } + ], + "functionName": { + "name": "store_literal_in_memory_77ce0874b137b60e93c01f56799e55f28d65db359f40d58d0f38dfc1b136e76f", + "nodeType": "YulIdentifier", + "src": "6785:88:2" + }, + "nodeType": "YulFunctionCall", + "src": "6785:93:2" + }, + "nodeType": "YulExpressionStatement", + "src": "6785:93:2" + }, + { + "nodeType": "YulAssignment", + "src": "6887:19:2", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6898:3:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6903:2:2", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6894:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "6894:12:2" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6887:3:2" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_77ce0874b137b60e93c01f56799e55f28d65db359f40d58d0f38dfc1b136e76f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6680:3:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6688:3:2", + "type": "" + } + ], + "src": "6546:366:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7089:248:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7099:26:2", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7111:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7122:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7107:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "7107:18:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7099:4:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7146:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7157:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7142:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "7142:17:2" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7165:4:2" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7171:9:2" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7161:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "7161:20:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7135:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "7135:47:2" + }, + "nodeType": "YulExpressionStatement", + "src": "7135:47:2" + }, + { + "nodeType": "YulAssignment", + "src": "7191:139:2", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7325:4:2" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_77ce0874b137b60e93c01f56799e55f28d65db359f40d58d0f38dfc1b136e76f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "7199:124:2" + }, + "nodeType": "YulFunctionCall", + "src": "7199:131:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7191:4:2" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_77ce0874b137b60e93c01f56799e55f28d65db359f40d58d0f38dfc1b136e76f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7069:9:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7084:4:2", + "type": "" + } + ], + "src": "6918:419:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7449:121:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7471:6:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7479:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7467:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "7467:14:2" + }, + { + "hexValue": "4f6e6c79207374616b65686f6c646572732063616e2075736520746869732066", + "kind": "string", + "nodeType": "YulLiteral", + "src": "7483:34:2", + "type": "", + "value": "Only stakeholders can use this f" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7460:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "7460:58:2" + }, + "nodeType": "YulExpressionStatement", + "src": "7460:58:2" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7539:6:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7547:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7535:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "7535:15:2" + }, + { + "hexValue": "756e6374696f6e2e", + "kind": "string", + "nodeType": "YulLiteral", + "src": "7552:10:2", + "type": "", + "value": "unction." + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7528:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "7528:35:2" + }, + "nodeType": "YulExpressionStatement", + "src": "7528:35:2" + } + ] + }, + "name": "store_literal_in_memory_65cf49bb6119b71c8bb66dd5c8bcb70b360e603c8c362e9623afd68faad0b328", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "7441:6:2", + "type": "" + } + ], + "src": "7343:227:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7722:220:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7732:74:2", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7798:3:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7803:2:2", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "7739:58:2" + }, + "nodeType": "YulFunctionCall", + "src": "7739:67:2" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7732:3:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7904:3:2" + } + ], + "functionName": { + "name": "store_literal_in_memory_65cf49bb6119b71c8bb66dd5c8bcb70b360e603c8c362e9623afd68faad0b328", + "nodeType": "YulIdentifier", + "src": "7815:88:2" + }, + "nodeType": "YulFunctionCall", + "src": "7815:93:2" + }, + "nodeType": "YulExpressionStatement", + "src": "7815:93:2" + }, + { + "nodeType": "YulAssignment", + "src": "7917:19:2", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7928:3:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7933:2:2", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7924:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "7924:12:2" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "7917:3:2" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_65cf49bb6119b71c8bb66dd5c8bcb70b360e603c8c362e9623afd68faad0b328_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7710:3:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7718:3:2", + "type": "" + } + ], + "src": "7576:366:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8119:248:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8129:26:2", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8141:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8152:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8137:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "8137:18:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8129:4:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8176:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8187:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8172:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "8172:17:2" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8195:4:2" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8201:9:2" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8191:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "8191:20:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8165:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "8165:47:2" + }, + "nodeType": "YulExpressionStatement", + "src": "8165:47:2" + }, + { + "nodeType": "YulAssignment", + "src": "8221:139:2", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8355:4:2" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_65cf49bb6119b71c8bb66dd5c8bcb70b360e603c8c362e9623afd68faad0b328_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "8229:124:2" + }, + "nodeType": "YulFunctionCall", + "src": "8229:131:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8221:4:2" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_65cf49bb6119b71c8bb66dd5c8bcb70b360e603c8c362e9623afd68faad0b328__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8099:9:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "8114:4:2", + "type": "" + } + ], + "src": "7948:419:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8479:130:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "8501:6:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8509:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8497:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "8497:14:2" + }, + { + "hexValue": "455448706f6f6c206973207061757365642e2054686973206f7065726174696f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "8513:34:2", + "type": "", + "value": "ETHpool is paused. This operatio" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8490:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "8490:58:2" + }, + "nodeType": "YulExpressionStatement", + "src": "8490:58:2" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "8569:6:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8577:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8565:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "8565:15:2" + }, + { + "hexValue": "6e206973206e6f7420616c6c6f7765642e", + "kind": "string", + "nodeType": "YulLiteral", + "src": "8582:19:2", + "type": "", + "value": "n is not allowed." + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8558:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "8558:44:2" + }, + "nodeType": "YulExpressionStatement", + "src": "8558:44:2" + } + ] + }, + "name": "store_literal_in_memory_d2355db99aa8f3f89b73eba5cd61e14fe5279a0cb8f0d810ce5eb08bae9c5db9", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "8471:6:2", + "type": "" + } + ], + "src": "8373:236:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8761:220:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8771:74:2", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8837:3:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8842:2:2", + "type": "", + "value": "49" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "8778:58:2" + }, + "nodeType": "YulFunctionCall", + "src": "8778:67:2" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8771:3:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8943:3:2" + } + ], + "functionName": { + "name": "store_literal_in_memory_d2355db99aa8f3f89b73eba5cd61e14fe5279a0cb8f0d810ce5eb08bae9c5db9", + "nodeType": "YulIdentifier", + "src": "8854:88:2" + }, + "nodeType": "YulFunctionCall", + "src": "8854:93:2" + }, + "nodeType": "YulExpressionStatement", + "src": "8854:93:2" + }, + { + "nodeType": "YulAssignment", + "src": "8956:19:2", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8967:3:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8972:2:2", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8963:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "8963:12:2" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8956:3:2" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_d2355db99aa8f3f89b73eba5cd61e14fe5279a0cb8f0d810ce5eb08bae9c5db9_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "8749:3:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8757:3:2", + "type": "" + } + ], + "src": "8615:366:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9158:248:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9168:26:2", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9180:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9191:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9176:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "9176:18:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9168:4:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9215:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9226:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9211:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "9211:17:2" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9234:4:2" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9240:9:2" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9230:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "9230:20:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9204:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "9204:47:2" + }, + "nodeType": "YulExpressionStatement", + "src": "9204:47:2" + }, + { + "nodeType": "YulAssignment", + "src": "9260:139:2", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9394:4:2" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_d2355db99aa8f3f89b73eba5cd61e14fe5279a0cb8f0d810ce5eb08bae9c5db9_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9268:124:2" + }, + "nodeType": "YulFunctionCall", + "src": "9268:131:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9260:4:2" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_d2355db99aa8f3f89b73eba5cd61e14fe5279a0cb8f0d810ce5eb08bae9c5db9__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9138:9:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9153:4:2", + "type": "" + } + ], + "src": "8987:419:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9440:152:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9457:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9460:77:2", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9450:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "9450:88:2" + }, + "nodeType": "YulExpressionStatement", + "src": "9450:88:2" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9554:1:2", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9557:4:2", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9547:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "9547:15:2" + }, + "nodeType": "YulExpressionStatement", + "src": "9547:15:2" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9578:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9581:4:2", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9571:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "9571:15:2" + }, + "nodeType": "YulExpressionStatement", + "src": "9571:15:2" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "9412:180:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9642:261:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9652:25:2", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9675:1:2" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9657:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "9657:20:2" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9652:1:2" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9686:25:2", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9709:1:2" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9691:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "9691:20:2" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9686:1:2" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9849:22:2", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "9851:16:2" + }, + "nodeType": "YulFunctionCall", + "src": "9851:18:2" + }, + "nodeType": "YulExpressionStatement", + "src": "9851:18:2" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9770:1:2" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9777:66:2", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9845:1:2" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9773:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "9773:74:2" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9767:2:2" + }, + "nodeType": "YulFunctionCall", + "src": "9767:81:2" + }, + "nodeType": "YulIf", + "src": "9764:107:2" + }, + { + "nodeType": "YulAssignment", + "src": "9881:16:2", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9892:1:2" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9895:1:2" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9888:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "9888:9:2" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "9881:3:2" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "9629:1:2", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "9632:1:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "9638:3:2", + "type": "" + } + ], + "src": "9598:305:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9954:146:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9964:25:2", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9987:1:2" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9969:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "9969:20:2" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9964:1:2" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9998:25:2", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10021:1:2" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "10003:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "10003:20:2" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9998:1:2" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10045:22:2", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "10047:16:2" + }, + "nodeType": "YulFunctionCall", + "src": "10047:18:2" + }, + "nodeType": "YulExpressionStatement", + "src": "10047:18:2" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10039:1:2" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10042:1:2" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "10036:2:2" + }, + "nodeType": "YulFunctionCall", + "src": "10036:8:2" + }, + "nodeType": "YulIf", + "src": "10033:34:2" + }, + { + "nodeType": "YulAssignment", + "src": "10077:17:2", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10089:1:2" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10092:1:2" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10085:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "10085:9:2" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "10077:4:2" + } + ] + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "9940:1:2", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "9943:1:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "9949:4:2", + "type": "" + } + ], + "src": "9909:191:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10154:300:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10164:25:2", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10187:1:2" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "10169:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "10169:20:2" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10164:1:2" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10198:25:2", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10221:1:2" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "10203:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "10203:20:2" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10198:1:2" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10396:22:2", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "10398:16:2" + }, + "nodeType": "YulFunctionCall", + "src": "10398:18:2" + }, + "nodeType": "YulExpressionStatement", + "src": "10398:18:2" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10308:1:2" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "10301:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "10301:9:2" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "10294:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "10294:17:2" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10316:1:2" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10323:66:2", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10391:1:2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "10319:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "10319:74:2" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10313:2:2" + }, + "nodeType": "YulFunctionCall", + "src": "10313:81:2" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "10290:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "10290:105:2" + }, + "nodeType": "YulIf", + "src": "10287:131:2" + }, + { + "nodeType": "YulAssignment", + "src": "10428:20:2", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10443:1:2" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10446:1:2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "10439:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "10439:9:2" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "10428:7:2" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "10137:1:2", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "10140:1:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "10146:7:2", + "type": "" + } + ], + "src": "10106:348:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10488:152:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10505:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10508:77:2", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10498:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "10498:88:2" + }, + "nodeType": "YulExpressionStatement", + "src": "10498:88:2" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10602:1:2", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10605:4:2", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10595:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "10595:15:2" + }, + "nodeType": "YulExpressionStatement", + "src": "10595:15:2" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10626:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10629:4:2", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10619:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "10619:15:2" + }, + "nodeType": "YulExpressionStatement", + "src": "10619:15:2" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "10460:180:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10688:143:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10698:25:2", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10721:1:2" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "10703:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "10703:20:2" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10698:1:2" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10732:25:2", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10755:1:2" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "10737:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "10737:20:2" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10732:1:2" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10779:22:2", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nodeType": "YulIdentifier", + "src": "10781:16:2" + }, + "nodeType": "YulFunctionCall", + "src": "10781:18:2" + }, + "nodeType": "YulExpressionStatement", + "src": "10781:18:2" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10776:1:2" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "10769:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "10769:9:2" + }, + "nodeType": "YulIf", + "src": "10766:35:2" + }, + { + "nodeType": "YulAssignment", + "src": "10811:14:2", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10820:1:2" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10823:1:2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "10816:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "10816:9:2" + }, + "variableNames": [ + { + "name": "r", + "nodeType": "YulIdentifier", + "src": "10811:1:2" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "10677:1:2", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "10680:1:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nodeType": "YulTypedName", + "src": "10686:1:2", + "type": "" + } + ], + "src": "10646:185:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10943:124:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "10965:6:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10973:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10961:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "10961:14:2" + }, + { + "hexValue": "455448706f6f6c20697320656e6465642e204f6e6c7920776974686472617761", + "kind": "string", + "nodeType": "YulLiteral", + "src": "10977:34:2", + "type": "", + "value": "ETHpool is ended. Only withdrawa" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10954:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "10954:58:2" + }, + "nodeType": "YulExpressionStatement", + "src": "10954:58:2" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11033:6:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11041:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11029:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "11029:15:2" + }, + { + "hexValue": "6c7320616c6c6f7765642e", + "kind": "string", + "nodeType": "YulLiteral", + "src": "11046:13:2", + "type": "", + "value": "ls allowed." + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11022:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "11022:38:2" + }, + "nodeType": "YulExpressionStatement", + "src": "11022:38:2" + } + ] + }, + "name": "store_literal_in_memory_1ed09dc327bb64f37a652f240dba7a4d6793962c301287c466770b5076492055", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "10935:6:2", + "type": "" + } + ], + "src": "10837:230:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11219:220:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11229:74:2", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11295:3:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11300:2:2", + "type": "", + "value": "43" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11236:58:2" + }, + "nodeType": "YulFunctionCall", + "src": "11236:67:2" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11229:3:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11401:3:2" + } + ], + "functionName": { + "name": "store_literal_in_memory_1ed09dc327bb64f37a652f240dba7a4d6793962c301287c466770b5076492055", + "nodeType": "YulIdentifier", + "src": "11312:88:2" + }, + "nodeType": "YulFunctionCall", + "src": "11312:93:2" + }, + "nodeType": "YulExpressionStatement", + "src": "11312:93:2" + }, + { + "nodeType": "YulAssignment", + "src": "11414:19:2", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11425:3:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11430:2:2", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11421:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "11421:12:2" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11414:3:2" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_1ed09dc327bb64f37a652f240dba7a4d6793962c301287c466770b5076492055_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11207:3:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11215:3:2", + "type": "" + } + ], + "src": "11073:366:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11616:248:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11626:26:2", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11638:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11649:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11634:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "11634:18:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11626:4:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11673:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11684:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11669:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "11669:17:2" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11692:4:2" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11698:9:2" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11688:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "11688:20:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11662:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "11662:47:2" + }, + "nodeType": "YulExpressionStatement", + "src": "11662:47:2" + }, + { + "nodeType": "YulAssignment", + "src": "11718:139:2", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11852:4:2" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_1ed09dc327bb64f37a652f240dba7a4d6793962c301287c466770b5076492055_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11726:124:2" + }, + "nodeType": "YulFunctionCall", + "src": "11726:131:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11718:4:2" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_1ed09dc327bb64f37a652f240dba7a4d6793962c301287c466770b5076492055__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11596:9:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11611:4:2", + "type": "" + } + ], + "src": "11445:419:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11976:75:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11998:6:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12006:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11994:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "11994:14:2" + }, + { + "hexValue": "52657761726473206d7573742062652067726561746572207468616e20302e", + "kind": "string", + "nodeType": "YulLiteral", + "src": "12010:33:2", + "type": "", + "value": "Rewards must be greater than 0." + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11987:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "11987:57:2" + }, + "nodeType": "YulExpressionStatement", + "src": "11987:57:2" + } + ] + }, + "name": "store_literal_in_memory_07b361e00a40d14412aefb062ec3a5b21a5a357aad74a24a1c5679be7fdaa993", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "11968:6:2", + "type": "" + } + ], + "src": "11870:181:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12203:220:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12213:74:2", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12279:3:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12284:2:2", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12220:58:2" + }, + "nodeType": "YulFunctionCall", + "src": "12220:67:2" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12213:3:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12385:3:2" + } + ], + "functionName": { + "name": "store_literal_in_memory_07b361e00a40d14412aefb062ec3a5b21a5a357aad74a24a1c5679be7fdaa993", + "nodeType": "YulIdentifier", + "src": "12296:88:2" + }, + "nodeType": "YulFunctionCall", + "src": "12296:93:2" + }, + "nodeType": "YulExpressionStatement", + "src": "12296:93:2" + }, + { + "nodeType": "YulAssignment", + "src": "12398:19:2", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12409:3:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12414:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12405:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "12405:12:2" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "12398:3:2" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_07b361e00a40d14412aefb062ec3a5b21a5a357aad74a24a1c5679be7fdaa993_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12191:3:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12199:3:2", + "type": "" + } + ], + "src": "12057:366:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12600:248:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12610:26:2", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12622:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12633:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12618:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "12618:18:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12610:4:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12657:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12668:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12653:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "12653:17:2" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12676:4:2" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12682:9:2" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12672:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "12672:20:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12646:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "12646:47:2" + }, + "nodeType": "YulExpressionStatement", + "src": "12646:47:2" + }, + { + "nodeType": "YulAssignment", + "src": "12702:139:2", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12836:4:2" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_07b361e00a40d14412aefb062ec3a5b21a5a357aad74a24a1c5679be7fdaa993_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12710:124:2" + }, + "nodeType": "YulFunctionCall", + "src": "12710:131:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12702:4:2" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_07b361e00a40d14412aefb062ec3a5b21a5a357aad74a24a1c5679be7fdaa993__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12580:9:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "12595:4:2", + "type": "" + } + ], + "src": "12429:419:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12960:58:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "12982:6:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12990:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12978:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "12978:14:2" + }, + { + "hexValue": "506f6f6c20697320656d70747921", + "kind": "string", + "nodeType": "YulLiteral", + "src": "12994:16:2", + "type": "", + "value": "Pool is empty!" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12971:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "12971:40:2" + }, + "nodeType": "YulExpressionStatement", + "src": "12971:40:2" + } + ] + }, + "name": "store_literal_in_memory_bcc280cff6a9e9b93cb698c0ecaafaa9b9bcf1ef79f855f86d90446a4a1f2a12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "12952:6:2", + "type": "" + } + ], + "src": "12854:164:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13170:220:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13180:74:2", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13246:3:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13251:2:2", + "type": "", + "value": "14" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13187:58:2" + }, + "nodeType": "YulFunctionCall", + "src": "13187:67:2" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13180:3:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13352:3:2" + } + ], + "functionName": { + "name": "store_literal_in_memory_bcc280cff6a9e9b93cb698c0ecaafaa9b9bcf1ef79f855f86d90446a4a1f2a12", + "nodeType": "YulIdentifier", + "src": "13263:88:2" + }, + "nodeType": "YulFunctionCall", + "src": "13263:93:2" + }, + "nodeType": "YulExpressionStatement", + "src": "13263:93:2" + }, + { + "nodeType": "YulAssignment", + "src": "13365:19:2", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13376:3:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13381:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13372:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "13372:12:2" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "13365:3:2" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_bcc280cff6a9e9b93cb698c0ecaafaa9b9bcf1ef79f855f86d90446a4a1f2a12_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13158:3:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13166:3:2", + "type": "" + } + ], + "src": "13024:366:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13567:248:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13577:26:2", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13589:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13600:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13585:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "13585:18:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13577:4:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13624:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13635:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13620:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "13620:17:2" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13643:4:2" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13649:9:2" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13639:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "13639:20:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13613:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "13613:47:2" + }, + "nodeType": "YulExpressionStatement", + "src": "13613:47:2" + }, + { + "nodeType": "YulAssignment", + "src": "13669:139:2", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13803:4:2" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_bcc280cff6a9e9b93cb698c0ecaafaa9b9bcf1ef79f855f86d90446a4a1f2a12_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13677:124:2" + }, + "nodeType": "YulFunctionCall", + "src": "13677:131:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13669:4:2" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_bcc280cff6a9e9b93cb698c0ecaafaa9b9bcf1ef79f855f86d90446a4a1f2a12__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13547:9:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13562:4:2", + "type": "" + } + ], + "src": "13396:419:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13947:206:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13957:26:2", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13969:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13980:2:2", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13965:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "13965:18:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13957:4:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14037:6:2" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14050:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14061:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14046:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "14046:17:2" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "13993:43:2" + }, + "nodeType": "YulFunctionCall", + "src": "13993:71:2" + }, + "nodeType": "YulExpressionStatement", + "src": "13993:71:2" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "14118:6:2" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14131:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14142:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14127:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "14127:18:2" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "14074:43:2" + }, + "nodeType": "YulFunctionCall", + "src": "14074:72:2" + }, + "nodeType": "YulExpressionStatement", + "src": "14074:72:2" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13911:9:2", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "13923:6:2", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13931:6:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13942:4:2", + "type": "" + } + ], + "src": "13821:332:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14187:152:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14204:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14207:77:2", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14197:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "14197:88:2" + }, + "nodeType": "YulExpressionStatement", + "src": "14197:88:2" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14301:1:2", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14304:4:2", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14294:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "14294:15:2" + }, + "nodeType": "YulExpressionStatement", + "src": "14294:15:2" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14325:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14328:4:2", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14318:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "14318:15:2" + }, + "nodeType": "YulExpressionStatement", + "src": "14318:15:2" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "14159:180:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14396:269:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14406:22:2", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "14420:4:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14426:1:2", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "14416:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "14416:12:2" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14406:6:2" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "14437:38:2", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "14467:4:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14473:1:2", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "14463:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "14463:12:2" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "14441:18:2", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14514:51:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14528:27:2", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14542:6:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14550:4:2", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "14538:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "14538:17:2" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14528:6:2" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "14494:18:2" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "14487:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "14487:26:2" + }, + "nodeType": "YulIf", + "src": "14484:81:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14617:42:2", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "14631:16:2" + }, + "nodeType": "YulFunctionCall", + "src": "14631:18:2" + }, + "nodeType": "YulExpressionStatement", + "src": "14631:18:2" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "14581:18:2" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14604:6:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14612:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "14601:2:2" + }, + "nodeType": "YulFunctionCall", + "src": "14601:14:2" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "14578:2:2" + }, + "nodeType": "YulFunctionCall", + "src": "14578:38:2" + }, + "nodeType": "YulIf", + "src": "14575:84:2" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "14380:4:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "14389:6:2", + "type": "" + } + ], + "src": "14345:320:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14777:73:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "14799:6:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14807:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14795:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "14795:14:2" + }, + { + "hexValue": "5374616b65206d7573742062652067726561746572207468616e20302e", + "kind": "string", + "nodeType": "YulLiteral", + "src": "14811:31:2", + "type": "", + "value": "Stake must be greater than 0." + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14788:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "14788:55:2" + }, + "nodeType": "YulExpressionStatement", + "src": "14788:55:2" + } + ] + }, + "name": "store_literal_in_memory_05ede4cef51b42b42ae16acb634cc6499f98b710b0e5c5d29d1ef04228f8705b", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "14769:6:2", + "type": "" + } + ], + "src": "14671:179:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15002:220:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15012:74:2", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15078:3:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15083:2:2", + "type": "", + "value": "29" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15019:58:2" + }, + "nodeType": "YulFunctionCall", + "src": "15019:67:2" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15012:3:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15184:3:2" + } + ], + "functionName": { + "name": "store_literal_in_memory_05ede4cef51b42b42ae16acb634cc6499f98b710b0e5c5d29d1ef04228f8705b", + "nodeType": "YulIdentifier", + "src": "15095:88:2" + }, + "nodeType": "YulFunctionCall", + "src": "15095:93:2" + }, + "nodeType": "YulExpressionStatement", + "src": "15095:93:2" + }, + { + "nodeType": "YulAssignment", + "src": "15197:19:2", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15208:3:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15213:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15204:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "15204:12:2" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "15197:3:2" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_05ede4cef51b42b42ae16acb634cc6499f98b710b0e5c5d29d1ef04228f8705b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "14990:3:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "14998:3:2", + "type": "" + } + ], + "src": "14856:366:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15399:248:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15409:26:2", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15421:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15432:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15417:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "15417:18:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15409:4:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15456:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15467:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15452:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "15452:17:2" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15475:4:2" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15481:9:2" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "15471:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "15471:20:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15445:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "15445:47:2" + }, + "nodeType": "YulExpressionStatement", + "src": "15445:47:2" + }, + { + "nodeType": "YulAssignment", + "src": "15501:139:2", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15635:4:2" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_05ede4cef51b42b42ae16acb634cc6499f98b710b0e5c5d29d1ef04228f8705b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15509:124:2" + }, + "nodeType": "YulFunctionCall", + "src": "15509:131:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15501:4:2" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_05ede4cef51b42b42ae16acb634cc6499f98b710b0e5c5d29d1ef04228f8705b__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15379:9:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15394:4:2", + "type": "" + } + ], + "src": "15228:419:2" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_string_memory_ptr_t_bool__to_t_string_memory_ptr_t_bool__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n abi_encode_t_bool_to_t_bool_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function validator_assert_t_enum$_State_$8(value) {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_State_$8(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_State_$8(value)\n }\n\n function convert_t_enum$_State_$8_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_State_$8(value)\n }\n\n function abi_encode_t_enum$_State_$8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_enum$_State_$8_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_enum$_State_$8__to_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint8__fromStack_reversed(headStart , value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 192)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n abi_encode_t_enum$_State_$8_to_t_uint8_fromStack(value5, add(headStart, 160))\n\n }\n\n function store_literal_in_memory_77ce0874b137b60e93c01f56799e55f28d65db359f40d58d0f38dfc1b136e76f(memPtr) {\n\n mstore(add(memPtr, 0), \"Only the Team can call this func\")\n\n mstore(add(memPtr, 32), \"tion.\")\n\n }\n\n function abi_encode_t_stringliteral_77ce0874b137b60e93c01f56799e55f28d65db359f40d58d0f38dfc1b136e76f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_77ce0874b137b60e93c01f56799e55f28d65db359f40d58d0f38dfc1b136e76f(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_77ce0874b137b60e93c01f56799e55f28d65db359f40d58d0f38dfc1b136e76f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_77ce0874b137b60e93c01f56799e55f28d65db359f40d58d0f38dfc1b136e76f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_65cf49bb6119b71c8bb66dd5c8bcb70b360e603c8c362e9623afd68faad0b328(memPtr) {\n\n mstore(add(memPtr, 0), \"Only stakeholders can use this f\")\n\n mstore(add(memPtr, 32), \"unction.\")\n\n }\n\n function abi_encode_t_stringliteral_65cf49bb6119b71c8bb66dd5c8bcb70b360e603c8c362e9623afd68faad0b328_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n store_literal_in_memory_65cf49bb6119b71c8bb66dd5c8bcb70b360e603c8c362e9623afd68faad0b328(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_65cf49bb6119b71c8bb66dd5c8bcb70b360e603c8c362e9623afd68faad0b328__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_65cf49bb6119b71c8bb66dd5c8bcb70b360e603c8c362e9623afd68faad0b328_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_d2355db99aa8f3f89b73eba5cd61e14fe5279a0cb8f0d810ce5eb08bae9c5db9(memPtr) {\n\n mstore(add(memPtr, 0), \"ETHpool is paused. This operatio\")\n\n mstore(add(memPtr, 32), \"n is not allowed.\")\n\n }\n\n function abi_encode_t_stringliteral_d2355db99aa8f3f89b73eba5cd61e14fe5279a0cb8f0d810ce5eb08bae9c5db9_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 49)\n store_literal_in_memory_d2355db99aa8f3f89b73eba5cd61e14fe5279a0cb8f0d810ce5eb08bae9c5db9(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_d2355db99aa8f3f89b73eba5cd61e14fe5279a0cb8f0d810ce5eb08bae9c5db9__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_d2355db99aa8f3f89b73eba5cd61e14fe5279a0cb8f0d810ce5eb08bae9c5db9_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_1ed09dc327bb64f37a652f240dba7a4d6793962c301287c466770b5076492055(memPtr) {\n\n mstore(add(memPtr, 0), \"ETHpool is ended. Only withdrawa\")\n\n mstore(add(memPtr, 32), \"ls allowed.\")\n\n }\n\n function abi_encode_t_stringliteral_1ed09dc327bb64f37a652f240dba7a4d6793962c301287c466770b5076492055_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_1ed09dc327bb64f37a652f240dba7a4d6793962c301287c466770b5076492055(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_1ed09dc327bb64f37a652f240dba7a4d6793962c301287c466770b5076492055__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_1ed09dc327bb64f37a652f240dba7a4d6793962c301287c466770b5076492055_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_07b361e00a40d14412aefb062ec3a5b21a5a357aad74a24a1c5679be7fdaa993(memPtr) {\n\n mstore(add(memPtr, 0), \"Rewards must be greater than 0.\")\n\n }\n\n function abi_encode_t_stringliteral_07b361e00a40d14412aefb062ec3a5b21a5a357aad74a24a1c5679be7fdaa993_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_07b361e00a40d14412aefb062ec3a5b21a5a357aad74a24a1c5679be7fdaa993(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_07b361e00a40d14412aefb062ec3a5b21a5a357aad74a24a1c5679be7fdaa993__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_07b361e00a40d14412aefb062ec3a5b21a5a357aad74a24a1c5679be7fdaa993_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_bcc280cff6a9e9b93cb698c0ecaafaa9b9bcf1ef79f855f86d90446a4a1f2a12(memPtr) {\n\n mstore(add(memPtr, 0), \"Pool is empty!\")\n\n }\n\n function abi_encode_t_stringliteral_bcc280cff6a9e9b93cb698c0ecaafaa9b9bcf1ef79f855f86d90446a4a1f2a12_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 14)\n store_literal_in_memory_bcc280cff6a9e9b93cb698c0ecaafaa9b9bcf1ef79f855f86d90446a4a1f2a12(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_bcc280cff6a9e9b93cb698c0ecaafaa9b9bcf1ef79f855f86d90446a4a1f2a12__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_bcc280cff6a9e9b93cb698c0ecaafaa9b9bcf1ef79f855f86d90446a4a1f2a12_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function store_literal_in_memory_05ede4cef51b42b42ae16acb634cc6499f98b710b0e5c5d29d1ef04228f8705b(memPtr) {\n\n mstore(add(memPtr, 0), \"Stake must be greater than 0.\")\n\n }\n\n function abi_encode_t_stringliteral_05ede4cef51b42b42ae16acb634cc6499f98b710b0e5c5d29d1ef04228f8705b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_05ede4cef51b42b42ae16acb634cc6499f98b710b0e5c5d29d1ef04228f8705b(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_05ede4cef51b42b42ae16acb634cc6499f98b710b0e5c5d29d1ef04228f8705b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_05ede4cef51b42b42ae16acb634cc6499f98b710b0e5c5d29d1ef04228f8705b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 2, + "language": "Yul", + "name": "#utility.yul" + } + ], + "sourceMap": "2826:6380:0:-:0;;;3983:370;;;;;;;;;;4031:4;4006;:16;4011:10;4006:16;;;;;;;;;;;;;;;:22;;;:29;;;;;;;;;;;;;;;;;;4095:13;4075:10;:17;;;:33;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;4143:1;4118:10;:22;;:26;;;;4223:1;4195:10;:25;;:29;;;;4308:1;4274:10;:31;;:35;;;;4345:1;4319:10;:23;;:27;;;;2826:6380;;7:180:2;55:77;52:1;45:88;152:4;149:1;142:15;176:4;173:1;166:15;2826:6380:0;;;;;;;", + "deployedSourceMap": "2826:6380:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2849:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8354:122;;;;;;;;;;;;;:::i;:::-;;8201:147;;;;;;;;;;;;;:::i;:::-;;6803:883;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7765:244;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8051:144;;;;;;;;;;;;;:::i;:::-;;8482:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4607:668;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3664:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5616:1028;;;:::i;:::-;;3610:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;3713:22;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;2849:39;;;;;;;;;;;;;;;;;;;:::o;8354:122::-;8844:4;8818:30;;:4;:16;8823:10;8818:16;;;;;;;;;;;;;;;:22;;;;;;;;;;;;:30;;;8810:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;8424:13:::1;8404:10;:17;;;:33;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;8354:122::o:0;8201:147::-;8844:4;8818:30;;:4;:16;8823:10;8818:16;;;;;;;;;;;;;;;:22;;;;;;;;;;;;:30;;;8810:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;8268:11:::1;8248:10:::0;:17:::1;;;:31;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;8201:147::o:0;6803:883::-;6860:9;8709:1;8670:8;:20;8679:10;8670:20;;;;;;;;;;;;;;;:36;;;:40;8661:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;8975:12:::1;8954:33;;;;;;;;:::i;:::-;;:10;:17;;;;;;;;;;;;:33;;;;;;;;:::i;:::-;;::::0;8945:96:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6880:20:::2;6903:8:::0;:20:::2;6912:10;6903:20;;;;;;;;;;;;;;;:36;;;6880:59;;6959:23;6985:16;:14;:16::i;:::-;6959:42;;7038:22;7080:18;7064:15;:34;;;;:::i;:::-;7038:60;;7135:15;7109:10;:22;;;:41;;;;;;;:::i;:::-;;;;;;;;7202:18;7173:10;:25;;;:47;;;;;;;:::i;:::-;;;;;;;;7285:1;7246:8:::0;:20:::2;7255:10;7246:20;;;;;;;;;;;;;;;:36;;:40;;;;7376:10;7368:24;;:43;7393:17;7368:43;;;;;;;;;;;;;;;;;;;;;;;7364:316;;;7442:8;:20:::0;7451:10:::2;7442:20;;;;;;;;;;;;;;;;7435:27:::0;::::2;;;;;;;;;;;;;;;;;;;7495:10;7481:43;;;7506:17;7481:43;;;;;;:::i;:::-;;;;;;;;7545:17;7538:24;;;;;;;7364:316;7632:15;7593:8;:20:::0;7602:10:::2;7593:20;;;;;;;;;;;;;;;:36;;:54;;;;7668:1;7661:8;;;;;9051:1;6803:883:::0;:::o;7765:244::-;7821:17;8709:1;8670:8;:20;8679:10;8670:20;;;;;;;;;;;;;;;:36;;;:40;8661:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;3020:5:::1;7932:8;:20:::0;7941:10:::1;7932:20;;;;;;;;;;;;;;;:47;;;7898:10;:31:::0;::::1;;:81;;;;:::i;:::-;7857:8;:20:::0;7866:10:::1;7857:20;;;;;;;;;;;;;;;:36;;;:123;;;;:::i;:::-;7856:145;;;;:::i;:::-;7849:152;;7765:244:::0;:::o;8051:144::-;8844:4;8818:30;;:4;:16;8823:10;8818:16;;;;;;;;;;;;;;;:22;;;;;;;;;;;;:30;;;8810:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;8176:12:::1;8156:10;:17;;;:32;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;8051:144::o:0;8482:118::-;8844:4;8818:30;;:4;:16;8823:10;8818:16;;;;;;;;;;;;;;;:22;;;;;;;;;;;;:30;;;8810:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;8589:4:::1;8563;:17;8568:11;8563:17;;;;;;;;;;;;;;;:23;;;:30;;;;;;;;;;;;;;;;;;8482:118:::0;;:::o;4607:668::-;4686:16;8844:4;8818:30;;:4;:16;8823:10;8818:16;;;;;;;;;;;;;;;:22;;;;;;;;;;;;:30;;;8810:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;8975:12:::1;8954:33;;;;;;;;:::i;:::-;;:10;:17;;;;;;;;;;;;:33;;;;;;;;:::i;:::-;;::::0;8945:96:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;9125:11:::2;9104:32:::0;::::2;;;;;;;:::i;:::-;;:10;:17;;;;;;;;;;;;:32;;;;;;;;:::i;:::-;;::::0;9095:89:::2;;;;;;;;;;;;:::i;:::-;;;;;;;;;4735:1:::3;4723:9;:13;4714:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;4813:1;4787:10;:22;;;:27;4783:362;;4858:15;4830:10;:25;;:43;;;;4956:10;:22;;;3020:5;4923:9;:29;;;;:::i;:::-;4922:56;;;;:::i;:::-;4887:10;:31:::0;::::3;;:91;;;;;;;:::i;:::-;;;;;;;;5021:9;4992:10;:25;;;:38;;;;;;;:::i;:::-;;;;;;;;5071:1;5044:10;:23;;;:28;;;;;;;:::i;:::-;;;;;;;;4783:362;;;5110:24;;;;;;;;;;:::i;:::-;;;;;;;;4783:362;5159:70;5179:10;:22;;;5203:10;:25;;;5159:70;;;;;;;:::i;:::-;;;;;;;;5246:10;:22;;;5239:29;;4607:668:::0;:::o;3664:43::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5616:1028::-;8975:12;8954:33;;;;;;;;:::i;:::-;;:10;:17;;;;;;;;;;;;:33;;;;;;;;:::i;:::-;;;8945:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;9125:11:::1;9104:32:::0;::::1;;;;;;;:::i;:::-;;:10;:17;;;;;;;;;;;;:32;;;;;;;;:::i;:::-;;::::0;9095:89:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5699:1:::2;5687:9;:13;5679:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;5788:1;5748:8:::0;:20:::2;5757:10;5748:20;;;;;;;;;;;;;;;:36;;;:41:::0;5744:819:::2;;5861:9;5822:8;:20:::0;5831:10:::2;5822:20;;;;;;;;;;;;;;;:36;;:48;;;;5934:10;:31:::0;::::2;;5884:8;:20:::0;5893:10:::2;5884:20;;;;;;;;;;;;;;;:47;;:81;;;;6015:15;5979:8;:20:::0;5988:10:::2;5979:20;;;;;;;;;;;;;;;:33;;:51;;;;6070:9;6044:10;:22;;;:35;;;;;;;:::i;:::-;;;;;;;;5744:819;;;6155:15;6190:9;6173:16;:14;:16::i;:::-;:26;;;;:::i;:::-;6155:44;;6286:10;6246:8;:20:::0;6255:10:::2;6246:20;;;;;;;;;;;;;;;:36;;;:50;;;;;;;:::i;:::-;;;;;;;;6360:10;:31:::0;::::2;;6310:8;:20:::0;6319:10:::2;6310:20;;;;;;;;;;;;;;;:47;;:81;;;;6460:15;6424:8;:20:::0;6433:10:::2;6424:20;;;;;;;;;;;;;;;:33;;:51;;;;6515:10;6489;:22;;;:36;;;;;;;:::i;:::-;;;;;;;;6104:459;5744:819;6588:10;6577:60;;;6600:8;:20:::0;6609:10:::2;6600:20;;;;;;;;;;;;;;;:36;;;6577:60;;;;;;:::i;:::-;;;;;;;;5616:1028::o:0;3610:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3713:22::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:99:2:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:77::-;1434:7;1463:5;1452:16;;1397:77;;;:::o;1480:118::-;1567:24;1585:5;1567:24;:::i;:::-;1562:3;1555:37;1480:118;;:::o;1604:222::-;1697:4;1735:2;1724:9;1720:18;1712:26;;1748:71;1816:1;1805:9;1801:17;1792:6;1748:71;:::i;:::-;1604:222;;;;:::o;1913:117::-;2022:1;2019;2012:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:90::-;2700:7;2743:5;2736:13;2729:21;2718:32;;2666:90;;;:::o;2762:116::-;2832:21;2847:5;2832:21;:::i;:::-;2825:5;2822:32;2812:60;;2868:1;2865;2858:12;2812:60;2762:116;:::o;2884:133::-;2927:5;2965:6;2952:20;2943:29;;2981:30;3005:5;2981:30;:::i;:::-;2884:133;;;;:::o;3023:468::-;3088:6;3096;3145:2;3133:9;3124:7;3120:23;3116:32;3113:119;;;3151:79;;:::i;:::-;3113:119;3271:1;3296:53;3341:7;3332:6;3321:9;3317:22;3296:53;:::i;:::-;3286:63;;3242:117;3398:2;3424:50;3466:7;3457:6;3446:9;3442:22;3424:50;:::i;:::-;3414:60;;3369:115;3023:468;;;;;:::o;3497:329::-;3556:6;3605:2;3593:9;3584:7;3580:23;3576:32;3573:119;;;3611:79;;:::i;:::-;3573:119;3731:1;3756:53;3801:7;3792:6;3781:9;3777:22;3756:53;:::i;:::-;3746:63;;3702:117;3497:329;;;;:::o;3832:109::-;3913:21;3928:5;3913:21;:::i;:::-;3908:3;3901:34;3832:109;;:::o;3947:411::-;4082:4;4120:2;4109:9;4105:18;4097:26;;4169:9;4163:4;4159:20;4155:1;4144:9;4140:17;4133:47;4197:78;4270:4;4261:6;4197:78;:::i;:::-;4189:86;;4285:66;4347:2;4336:9;4332:18;4323:6;4285:66;:::i;:::-;3947:411;;;;;:::o;4364:442::-;4513:4;4551:2;4540:9;4536:18;4528:26;;4564:71;4632:1;4621:9;4617:17;4608:6;4564:71;:::i;:::-;4645:72;4713:2;4702:9;4698:18;4689:6;4645:72;:::i;:::-;4727;4795:2;4784:9;4780:18;4771:6;4727:72;:::i;:::-;4364:442;;;;;;:::o;4812:180::-;4860:77;4857:1;4850:88;4957:4;4954:1;4947:15;4981:4;4978:1;4971:15;4998:112;5078:1;5071:5;5068:12;5058:46;;5084:18;;:::i;:::-;5058:46;4998:112;:::o;5116:125::-;5160:7;5189:5;5178:16;;5195:40;5229:5;5195:40;:::i;:::-;5116:125;;;:::o;5247:::-;5302:9;5335:31;5360:5;5335:31;:::i;:::-;5322:44;;5247:125;;;:::o;5378:141::-;5470:42;5506:5;5470:42;:::i;:::-;5465:3;5458:55;5378:141;;:::o;5525:785::-;5763:4;5801:3;5790:9;5786:19;5778:27;;5815:71;5883:1;5872:9;5868:17;5859:6;5815:71;:::i;:::-;5896:72;5964:2;5953:9;5949:18;5940:6;5896:72;:::i;:::-;5978;6046:2;6035:9;6031:18;6022:6;5978:72;:::i;:::-;6060;6128:2;6117:9;6113:18;6104:6;6060:72;:::i;:::-;6142:73;6210:3;6199:9;6195:19;6186:6;6142:73;:::i;:::-;6225:78;6298:3;6287:9;6283:19;6274:6;6225:78;:::i;:::-;5525:785;;;;;;;;;:::o;6316:224::-;6456:34;6452:1;6444:6;6440:14;6433:58;6525:7;6520:2;6512:6;6508:15;6501:32;6316:224;:::o;6546:366::-;6688:3;6709:67;6773:2;6768:3;6709:67;:::i;:::-;6702:74;;6785:93;6874:3;6785:93;:::i;:::-;6903:2;6898:3;6894:12;6887:19;;6546:366;;;:::o;6918:419::-;7084:4;7122:2;7111:9;7107:18;7099:26;;7171:9;7165:4;7161:20;7157:1;7146:9;7142:17;7135:47;7199:131;7325:4;7199:131;:::i;:::-;7191:139;;6918:419;;;:::o;7343:227::-;7483:34;7479:1;7471:6;7467:14;7460:58;7552:10;7547:2;7539:6;7535:15;7528:35;7343:227;:::o;7576:366::-;7718:3;7739:67;7803:2;7798:3;7739:67;:::i;:::-;7732:74;;7815:93;7904:3;7815:93;:::i;:::-;7933:2;7928:3;7924:12;7917:19;;7576:366;;;:::o;7948:419::-;8114:4;8152:2;8141:9;8137:18;8129:26;;8201:9;8195:4;8191:20;8187:1;8176:9;8172:17;8165:47;8229:131;8355:4;8229:131;:::i;:::-;8221:139;;7948:419;;;:::o;8373:236::-;8513:34;8509:1;8501:6;8497:14;8490:58;8582:19;8577:2;8569:6;8565:15;8558:44;8373:236;:::o;8615:366::-;8757:3;8778:67;8842:2;8837:3;8778:67;:::i;:::-;8771:74;;8854:93;8943:3;8854:93;:::i;:::-;8972:2;8967:3;8963:12;8956:19;;8615:366;;;:::o;8987:419::-;9153:4;9191:2;9180:9;9176:18;9168:26;;9240:9;9234:4;9230:20;9226:1;9215:9;9211:17;9204:47;9268:131;9394:4;9268:131;:::i;:::-;9260:139;;8987:419;;;:::o;9412:180::-;9460:77;9457:1;9450:88;9557:4;9554:1;9547:15;9581:4;9578:1;9571:15;9598:305;9638:3;9657:20;9675:1;9657:20;:::i;:::-;9652:25;;9691:20;9709:1;9691:20;:::i;:::-;9686:25;;9845:1;9777:66;9773:74;9770:1;9767:81;9764:107;;;9851:18;;:::i;:::-;9764:107;9895:1;9892;9888:9;9881:16;;9598:305;;;;:::o;9909:191::-;9949:4;9969:20;9987:1;9969:20;:::i;:::-;9964:25;;10003:20;10021:1;10003:20;:::i;:::-;9998:25;;10042:1;10039;10036:8;10033:34;;;10047:18;;:::i;:::-;10033:34;10092:1;10089;10085:9;10077:17;;9909:191;;;;:::o;10106:348::-;10146:7;10169:20;10187:1;10169:20;:::i;:::-;10164:25;;10203:20;10221:1;10203:20;:::i;:::-;10198:25;;10391:1;10323:66;10319:74;10316:1;10313:81;10308:1;10301:9;10294:17;10290:105;10287:131;;;10398:18;;:::i;:::-;10287:131;10446:1;10443;10439:9;10428:20;;10106:348;;;;:::o;10460:180::-;10508:77;10505:1;10498:88;10605:4;10602:1;10595:15;10629:4;10626:1;10619:15;10646:185;10686:1;10703:20;10721:1;10703:20;:::i;:::-;10698:25;;10737:20;10755:1;10737:20;:::i;:::-;10732:25;;10776:1;10766:35;;10781:18;;:::i;:::-;10766:35;10823:1;10820;10816:9;10811:14;;10646:185;;;;:::o;10837:230::-;10977:34;10973:1;10965:6;10961:14;10954:58;11046:13;11041:2;11033:6;11029:15;11022:38;10837:230;:::o;11073:366::-;11215:3;11236:67;11300:2;11295:3;11236:67;:::i;:::-;11229:74;;11312:93;11401:3;11312:93;:::i;:::-;11430:2;11425:3;11421:12;11414:19;;11073:366;;;:::o;11445:419::-;11611:4;11649:2;11638:9;11634:18;11626:26;;11698:9;11692:4;11688:20;11684:1;11673:9;11669:17;11662:47;11726:131;11852:4;11726:131;:::i;:::-;11718:139;;11445:419;;;:::o;11870:181::-;12010:33;12006:1;11998:6;11994:14;11987:57;11870:181;:::o;12057:366::-;12199:3;12220:67;12284:2;12279:3;12220:67;:::i;:::-;12213:74;;12296:93;12385:3;12296:93;:::i;:::-;12414:2;12409:3;12405:12;12398:19;;12057:366;;;:::o;12429:419::-;12595:4;12633:2;12622:9;12618:18;12610:26;;12682:9;12676:4;12672:20;12668:1;12657:9;12653:17;12646:47;12710:131;12836:4;12710:131;:::i;:::-;12702:139;;12429:419;;;:::o;12854:164::-;12994:16;12990:1;12982:6;12978:14;12971:40;12854:164;:::o;13024:366::-;13166:3;13187:67;13251:2;13246:3;13187:67;:::i;:::-;13180:74;;13263:93;13352:3;13263:93;:::i;:::-;13381:2;13376:3;13372:12;13365:19;;13024:366;;;:::o;13396:419::-;13562:4;13600:2;13589:9;13585:18;13577:26;;13649:9;13643:4;13639:20;13635:1;13624:9;13620:17;13613:47;13677:131;13803:4;13677:131;:::i;:::-;13669:139;;13396:419;;;:::o;13821:332::-;13942:4;13980:2;13969:9;13965:18;13957:26;;13993:71;14061:1;14050:9;14046:17;14037:6;13993:71;:::i;:::-;14074:72;14142:2;14131:9;14127:18;14118:6;14074:72;:::i;:::-;13821:332;;;;;:::o;14159:180::-;14207:77;14204:1;14197:88;14304:4;14301:1;14294:15;14328:4;14325:1;14318:15;14345:320;14389:6;14426:1;14420:4;14416:12;14406:22;;14473:1;14467:4;14463:12;14494:18;14484:81;;14550:4;14542:6;14538:17;14528:27;;14484:81;14612:2;14604:6;14601:14;14581:18;14578:38;14575:84;;14631:18;;:::i;:::-;14575:84;14396:269;14345:320;;;:::o;14671:179::-;14811:31;14807:1;14799:6;14795:14;14788:55;14671:179;:::o;14856:366::-;14998:3;15019:67;15083:2;15078:3;15019:67;:::i;:::-;15012:74;;15095:93;15184:3;15095:93;:::i;:::-;15213:2;15208:3;15204:12;15197:19;;14856:366;;;:::o;15228:419::-;15394:4;15432:2;15421:9;15417:18;15409:26;;15481:9;15475:4;15471:20;15467:1;15456:9;15452:17;15445:47;15509:131;15635:4;15509:131;:::i;:::-;15501:139;;15228:419;;;:::o", + "source": "//SPDX-License-Identifier: GPL-3.0\n\npragma solidity >=0.8.0 <0.9.0;\n// >0.8 to avoid use of SafeMath functions\n//But, if you want it...\n//import \"github.com/OpenZeppelin/zeppelin-solidity/contracts/math/SafeMath.sol\";\n//using SafeMath for uint; // \n//Better use Pausable Library, but it's only for fun\n\n/*\nSummary\nETHPool provides a service where people can deposit ETH and they will receive weekly rewards. \nUsers must be able to take out their deposits along with their portion of rewards at any time. \nNew rewards are deposited manually into the pool by the ETHPool team each week using a contract function.\n\nRequirements\nOnly the team can deposit rewards.\nDeposited rewards go to the pool of users, not to individual users.\nUsers should be able to withdraw their deposits along with their share of rewards considering the time when they deposited.\nExample:\n\nLet say we have user A and B and team T.\n\nA deposits 100, and B deposits 300 for a total of 400 in the pool.\nNow A has 25% of the pool and B has 75%. \nWhen T deposits 200 rewards, A should be able to withdraw 150 and B 450.\n\nWhat if the following happens? \nA deposits then T deposits then B deposits then A withdraws and finally B withdraws. \nA should get their deposit + all the rewards. \nB should only get their deposit because rewards were sent to the pool before they participated.\n*/\n\n/* \n How it works?\n First of all, we need to understand that the reward mechanism cannot be automatic. (No FOR or WHILE allowed!)\n So, the stakeholders by themselves need to calculate their own reward (Don't worry, a function will do for us)\n\n Because the staking cannot be negative, we will save the accumulation of rewards proportional to the pool at the time of deposit.\n For each stakeholder, we will save the composition of the pool at the time of staking.\n To calculate the reward, we will substract the sum of rewards at the current time minus the composition of the pool at the time of staking for each user.\n This is the explanation of why cannot be automatic at the time of deposit rewards.\n\n Some assumptions has been taken:\n - Users withdrawn all of the staking and rewards. No partial withdraw allowed (Well, in fact, can be a full withdraw with a new deposit of the diff)\n - Users cannot add funds to their staking (As above, we can consider a full withdraw, and a new staking)\n - Some constants will be multiplied for an arbitrary big constant (10^18), to reduce rounding errors in division.\n - Can be optimized for gas consumption. But for this challenge and for educational purposes, we can take the risk. And testnet is \"free\".\n - Bugs? Everywhere. Not ready for production or resale.\n\n Credits: https://explorer.callisto.network/address/0xE2E4Cf144F4365AAa023da04918A64072C284201/contracts\n (Thanks Erik!)\n*/\n\ncontract ETHpool {\n string public constant name = \"ETHpool\";\n enum State {Running, Paused, Ended } //staking can be done only if it state is running.\n uint constant ROUNDING_CONSTANT = 10e18; //To minimize rounding errors at divisions\n\n struct TeamMember { //there are no specifications for TEAM, so, I understand that can be a lot of people.\n string _name; //It's not necessary\n bool _role; // True for active Team Members\n }\n\n struct Stakeholder {\n uint _currentBalance;\n uint _compositionAtStartStaking;\n uint _timeStaking;\n }\n\n struct Pool {\n uint poolBalance;\n uint rewardsBalance;\n uint lastRewardMultiplied;\n uint rewardsCount;\n uint lastRewardTime;\n State status;\n }\n\n mapping( address => Stakeholder) public UserList;\n mapping( address => TeamMember) public Team;\n Pool public poolStatus;\n\n //Some events to get data outside of the blockchain\n event StakeEvent(address indexed _from, uint _value);\n event WithdrawEvent(address indexed _to, uint _value);\n event DepositRewardsEvent(uint _poolBalance, uint _rewards);\n\n\n\n constructor(){\n Team[msg.sender]._role = true; // Team member role assigned.\n poolStatus.status = State.Running;\n poolStatus.poolBalance = 0; // Do not transfer at construction time!\n poolStatus.rewardsBalance = 0; // Do not transfer at construction time\n poolStatus.lastRewardMultiplied = 0;\n poolStatus.rewardsCount = 0;\n }\n\n\n // The main functions: Stake() , DepositRewards() , Withdraw()\n\n // DepositRewards: The team can call this function to deposit rewards to the pool.\n // It will update the last reward of the pool, as rewards*ROUNDING_CONSTANT/PoolBalance\n function DepositRewards() external payable onlyTeam notPaused notEnded returns(uint poolbalance) {\n require( msg.value > 0, \"Rewards must be greater than 0.\" );\n if( poolStatus.poolBalance != 0) {\n poolStatus.lastRewardTime = block.timestamp;\n poolStatus.lastRewardMultiplied += (msg.value * ROUNDING_CONSTANT) / poolStatus.poolBalance;\n poolStatus.rewardsBalance += msg.value;\n poolStatus.rewardsCount += 1;\n }\n else{\n revert(\"Pool is empty!\");\n }\n emit DepositRewardsEvent(poolStatus.poolBalance, poolStatus.rewardsBalance);\n return poolStatus.poolBalance;\n }\n \n // Stake: The users can call \"Stake\" to stake some ETH (or your network coin of value)\n // All network users can perform this function, to become \"USERS\"\n // TODO: We need to check if the user already exists, and **need to perform first a withdrawal next to a new deposit**.\n // In V2, it will be an automatic claim.\n\n function Stake() external notPaused notEnded payable {\n require(msg.value > 0, \"Stake must be greater than 0.\");\n if( UserList[msg.sender]._currentBalance == 0 ) { //first staking\n UserList[msg.sender]._currentBalance = msg.value;\n UserList[msg.sender]._compositionAtStartStaking = poolStatus.lastRewardMultiplied;\n UserList[msg.sender]._timeStaking = block.timestamp;\n poolStatus.poolBalance += msg.value;\n }\n else { //User add more funds to their stake\n uint newStaking = computeRewards()+msg.value; //Add old rewards plus new funds\n UserList[msg.sender]._currentBalance += newStaking;\n UserList[msg.sender]._compositionAtStartStaking = poolStatus.lastRewardMultiplied; //compute from now\n UserList[msg.sender]._timeStaking = block.timestamp;\n poolStatus.poolBalance += newStaking; //do not forget old funds!\n }\n emit StakeEvent(msg.sender, UserList[msg.sender]._currentBalance);\n }\n\n // Withdraw: Allows users to withdraw their deposits and rewards proportional at the time being.\n // FIXME: At now, only allows full withdrawals.\n function Withdraw() external onlyUsers notPaused returns(uint sent){\n uint balanceFromPool = UserList[msg.sender]._currentBalance; //deposit\n uint balanceFromRewards = computeRewards(); // rewards\n uint allowedToWithdraw = balanceFromPool+balanceFromRewards ;\n poolStatus.poolBalance -= balanceFromPool; // From pool\n poolStatus.rewardsBalance -= balanceFromRewards; // From rewards\n UserList[msg.sender]._currentBalance = 0;\n\n // Did you reentrant? (yes) what did it cost? (everything)\n if (payable(msg.sender).send(allowedToWithdraw)) { \n delete UserList[msg.sender];\n emit WithdrawEvent(msg.sender,allowedToWithdraw);\n return allowedToWithdraw;\n } else {\n UserList[msg.sender]._currentBalance = balanceFromPool;\n return 0;\n }\n }\n\n // Viewer functions: Allows users and team to see some computations.\n function computeRewards() public view onlyUsers returns(uint withdrawable){\n return (UserList[msg.sender]._currentBalance * ( poolStatus.lastRewardMultiplied - UserList[msg.sender]._compositionAtStartStaking)) / ROUNDING_CONSTANT ;\n }\n\n //Pool Administration functions\n function pausePool() external onlyTeam { //If something went wrong, and we need time to proceed.\n poolStatus.status = State.Paused;\n }\n\n function endPool() external onlyTeam {\n poolStatus.status = State.Ended; //If the pool dies. Only allow users to withdraw their funds.\n }\n\n function resumePool() external onlyTeam {\n poolStatus.status = State.Running; //Everything is up and running.\n }\n\n function modifyTeam(address teamAddress , bool role) external onlyTeam {\n Team[teamAddress]._role = role;\n }\n\n //Modifiers section\n modifier onlyUsers() {\n require( UserList[msg.sender]._currentBalance > 0 , \"Only stakeholders can use this function.\");\n _;\n }\n\n modifier onlyTeam() {\n require(Team[msg.sender]._role == true, \"Only the Team can call this function.\");\n _;\n }\n\n modifier notPaused() {\n require( poolStatus.status != State.Paused, \"ETHpool is paused. This operation is not allowed.\");\n _;\n }\n\n modifier notEnded() {\n require( poolStatus.status != State.Ended, \"ETHpool is ended. Only withdrawals allowed.\");\n _; \n }\n}", + "sourcePath": "T:\\Desarrollos\\Experimentos\\Exactly\\exactly-private\\contracts\\ETHpool.sol", + "ast": { + "absolutePath": "project:/contracts/ETHpool.sol", + "exportedSymbols": { + "ETHpool": [ + 519 + ] + }, + "id": 520, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + ">=", + "0.8", + ".0", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "36:31:0" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ETHpool", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 519, + "linearizedBaseContracts": [ + 519 + ], + "name": "ETHpool", + "nameLocation": "2835:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "06fdde03", + "id": 4, + "mutability": "constant", + "name": "name", + "nameLocation": "2872:4:0", + "nodeType": "VariableDeclaration", + "scope": 519, + "src": "2849:39:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2849:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "455448706f6f6c", + "id": 3, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2879:9:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_33b544d45538fe7ededd99443ce651494393ca61ca8f1ce87f840a9674fdbf0f", + "typeString": "literal_string \"ETHpool\"" + }, + "value": "ETHpool" + }, + "visibility": "public" + }, + { + "canonicalName": "ETHpool.State", + "id": 8, + "members": [ + { + "id": 5, + "name": "Running", + "nameLocation": "2906:7:0", + "nodeType": "EnumValue", + "src": "2906:7:0" + }, + { + "id": 6, + "name": "Paused", + "nameLocation": "2915:6:0", + "nodeType": "EnumValue", + "src": "2915:6:0" + }, + { + "id": 7, + "name": "Ended", + "nameLocation": "2923:5:0", + "nodeType": "EnumValue", + "src": "2923:5:0" + } + ], + "name": "State", + "nameLocation": "2899:5:0", + "nodeType": "EnumDefinition", + "src": "2894:36:0" + }, + { + "constant": true, + "id": 11, + "mutability": "constant", + "name": "ROUNDING_CONSTANT", + "nameLocation": "3000:17:0", + "nodeType": "VariableDeclaration", + "scope": 519, + "src": "2986:39:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2986:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130653138", + "id": 10, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3020:5:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000_by_1", + "typeString": "int_const 10000000000000000000" + }, + "value": "10e18" + }, + "visibility": "internal" + }, + { + "canonicalName": "ETHpool.TeamMember", + "id": 16, + "members": [ + { + "constant": false, + "id": 13, + "mutability": "mutable", + "name": "_name", + "nameLocation": "3196:5:0", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "3189:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 12, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3189:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15, + "mutability": "mutable", + "name": "_role", + "nameLocation": "3237:5:0", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "3232:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 14, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3232:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "TeamMember", + "nameLocation": "3082:10:0", + "nodeType": "StructDefinition", + "scope": 519, + "src": "3075:206:0", + "visibility": "public" + }, + { + "canonicalName": "ETHpool.Stakeholder", + "id": 23, + "members": [ + { + "constant": false, + "id": 18, + "mutability": "mutable", + "name": "_currentBalance", + "nameLocation": "3321:15:0", + "nodeType": "VariableDeclaration", + "scope": 23, + "src": "3316:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3316:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "_compositionAtStartStaking", + "nameLocation": "3351:26:0", + "nodeType": "VariableDeclaration", + "scope": 23, + "src": "3346:31:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3346:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 22, + "mutability": "mutable", + "name": "_timeStaking", + "nameLocation": "3392:12:0", + "nodeType": "VariableDeclaration", + "scope": 23, + "src": "3387:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3387:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Stakeholder", + "nameLocation": "3294:11:0", + "nodeType": "StructDefinition", + "scope": 519, + "src": "3287:124:0", + "visibility": "public" + }, + { + "canonicalName": "ETHpool.Pool", + "id": 37, + "members": [ + { + "constant": false, + "id": 25, + "mutability": "mutable", + "name": "poolBalance", + "nameLocation": "3444:11:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "3439:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 24, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3439:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27, + "mutability": "mutable", + "name": "rewardsBalance", + "nameLocation": "3470:14:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "3465:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3465:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29, + "mutability": "mutable", + "name": "lastRewardMultiplied", + "nameLocation": "3499:20:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "3494:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3494:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 31, + "mutability": "mutable", + "name": "rewardsCount", + "nameLocation": "3534:12:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "3529:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3529:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33, + "mutability": "mutable", + "name": "lastRewardTime", + "nameLocation": "3561:14:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "3556:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3556:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 36, + "mutability": "mutable", + "name": "status", + "nameLocation": "3591:6:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "3585:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_State_$8", + "typeString": "enum ETHpool.State" + }, + "typeName": { + "id": 35, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 34, + "name": "State", + "nodeType": "IdentifierPath", + "referencedDeclaration": 8, + "src": "3585:5:0" + }, + "referencedDeclaration": 8, + "src": "3585:5:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_State_$8", + "typeString": "enum ETHpool.State" + } + }, + "visibility": "internal" + } + ], + "name": "Pool", + "nameLocation": "3424:4:0", + "nodeType": "StructDefinition", + "scope": 519, + "src": "3417:187:0", + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "eb63a59e", + "id": 42, + "mutability": "mutable", + "name": "UserList", + "nameLocation": "3650:8:0", + "nodeType": "VariableDeclaration", + "scope": 519, + "src": "3610:48:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Stakeholder_$23_storage_$", + "typeString": "mapping(address => struct ETHpool.Stakeholder)" + }, + "typeName": { + "id": 41, + "keyType": { + "id": 38, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3619:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3610:32:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Stakeholder_$23_storage_$", + "typeString": "mapping(address => struct ETHpool.Stakeholder)" + }, + "valueType": { + "id": 40, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39, + "name": "Stakeholder", + "nodeType": "IdentifierPath", + "referencedDeclaration": 23, + "src": "3630:11:0" + }, + "referencedDeclaration": 23, + "src": "3630:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stakeholder_$23_storage_ptr", + "typeString": "struct ETHpool.Stakeholder" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d515b1ce", + "id": 47, + "mutability": "mutable", + "name": "Team", + "nameLocation": "3703:4:0", + "nodeType": "VariableDeclaration", + "scope": 519, + "src": "3664:43:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TeamMember_$16_storage_$", + "typeString": "mapping(address => struct ETHpool.TeamMember)" + }, + "typeName": { + "id": 46, + "keyType": { + "id": 43, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3673:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3664:31:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TeamMember_$16_storage_$", + "typeString": "mapping(address => struct ETHpool.TeamMember)" + }, + "valueType": { + "id": 45, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44, + "name": "TeamMember", + "nodeType": "IdentifierPath", + "referencedDeclaration": 16, + "src": "3684:10:0" + }, + "referencedDeclaration": 16, + "src": "3684:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TeamMember_$16_storage_ptr", + "typeString": "struct ETHpool.TeamMember" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "f0228692", + "id": 50, + "mutability": "mutable", + "name": "poolStatus", + "nameLocation": "3725:10:0", + "nodeType": "VariableDeclaration", + "scope": 519, + "src": "3713:22:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool" + }, + "typeName": { + "id": 49, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 48, + "name": "Pool", + "nodeType": "IdentifierPath", + "referencedDeclaration": 37, + "src": "3713:4:0" + }, + "referencedDeclaration": 37, + "src": "3713:4:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage_ptr", + "typeString": "struct ETHpool.Pool" + } + }, + "visibility": "public" + }, + { + "anonymous": false, + "eventSelector": "b58845b0a64f92dd8d1ba04f905319d6be2021b57783b3d10155e7e36a84e128", + "id": 56, + "name": "StakeEvent", + "nameLocation": "3804:10:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 55, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 52, + "indexed": true, + "mutability": "mutable", + "name": "_from", + "nameLocation": "3831:5:0", + "nodeType": "VariableDeclaration", + "scope": 56, + "src": "3815:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 51, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3815:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 54, + "indexed": false, + "mutability": "mutable", + "name": "_value", + "nameLocation": "3843:6:0", + "nodeType": "VariableDeclaration", + "scope": 56, + "src": "3838:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 53, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3838:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3814:36:0" + }, + "src": "3798:53:0" + }, + { + "anonymous": false, + "eventSelector": "5dba113b49cfa7c90315e8e604e6b506f7abcb909b01dcb19ec39005086e68fc", + "id": 62, + "name": "WithdrawEvent", + "nameLocation": "3862:13:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 61, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 58, + "indexed": true, + "mutability": "mutable", + "name": "_to", + "nameLocation": "3892:3:0", + "nodeType": "VariableDeclaration", + "scope": 62, + "src": "3876:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 57, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3876:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 60, + "indexed": false, + "mutability": "mutable", + "name": "_value", + "nameLocation": "3902:6:0", + "nodeType": "VariableDeclaration", + "scope": 62, + "src": "3897:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 59, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3897:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3875:34:0" + }, + "src": "3856:54:0" + }, + { + "anonymous": false, + "eventSelector": "277795e41191c7435317bb3d7b4884a9412d1a36f88b2a6053edbdf534a88e02", + "id": 68, + "name": "DepositRewardsEvent", + "nameLocation": "3921:19:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 67, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "indexed": false, + "mutability": "mutable", + "name": "_poolBalance", + "nameLocation": "3946:12:0", + "nodeType": "VariableDeclaration", + "scope": 68, + "src": "3941:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 63, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3941:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 66, + "indexed": false, + "mutability": "mutable", + "name": "_rewards", + "nameLocation": "3965:8:0", + "nodeType": "VariableDeclaration", + "scope": 68, + "src": "3960:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 65, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3960:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3940:34:0" + }, + "src": "3915:60:0" + }, + { + "body": { + "id": 110, + "nodeType": "Block", + "src": "3996:357:0", + "statements": [ + { + "expression": { + "id": 77, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 71, + "name": "Team", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "4006:4:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TeamMember_$16_storage_$", + "typeString": "mapping(address => struct ETHpool.TeamMember storage ref)" + } + }, + "id": 74, + "indexExpression": { + "expression": { + "id": 72, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4011:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 73, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4011:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4006:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TeamMember_$16_storage", + "typeString": "struct ETHpool.TeamMember storage ref" + } + }, + "id": 75, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_role", + "nodeType": "MemberAccess", + "referencedDeclaration": 15, + "src": "4006:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4031:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4006:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 78, + "nodeType": "ExpressionStatement", + "src": "4006:29:0" + }, + { + "expression": { + "id": 84, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 79, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "4075:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 81, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 36, + "src": "4075:17:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_State_$8", + "typeString": "enum ETHpool.State" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 82, + "name": "State", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "4095:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_State_$8_$", + "typeString": "type(enum ETHpool.State)" + } + }, + "id": 83, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Running", + "nodeType": "MemberAccess", + "referencedDeclaration": 5, + "src": "4095:13:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_State_$8", + "typeString": "enum ETHpool.State" + } + }, + "src": "4075:33:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_State_$8", + "typeString": "enum ETHpool.State" + } + }, + "id": 85, + "nodeType": "ExpressionStatement", + "src": "4075:33:0" + }, + { + "expression": { + "id": 90, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 86, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "4118:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 88, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "poolBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 25, + "src": "4118:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 89, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4143:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4118:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 91, + "nodeType": "ExpressionStatement", + "src": "4118:26:0" + }, + { + "expression": { + "id": 96, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 92, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "4195:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 94, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "rewardsBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "4195:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 95, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4223:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4195:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 97, + "nodeType": "ExpressionStatement", + "src": "4195:29:0" + }, + { + "expression": { + "id": 102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 98, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "4274:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 100, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "lastRewardMultiplied", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "4274:31:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 101, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4308:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4274:35:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 103, + "nodeType": "ExpressionStatement", + "src": "4274:35:0" + }, + { + "expression": { + "id": 108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 104, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "4319:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 106, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "rewardsCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "4319:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 107, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4345:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4319:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 109, + "nodeType": "ExpressionStatement", + "src": "4319:27:0" + } + ] + }, + "id": 111, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 69, + "nodeType": "ParameterList", + "parameters": [], + "src": "3994:2:0" + }, + "returnParameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [], + "src": "3996:0:0" + }, + "scope": 519, + "src": "3983:370:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 184, + "nodeType": "Block", + "src": "4704:571:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 123, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4723:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "4723:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4735:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4723:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "52657761726473206d7573742062652067726561746572207468616e20302e", + "id": 127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4738:33:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_07b361e00a40d14412aefb062ec3a5b21a5a357aad74a24a1c5679be7fdaa993", + "typeString": "literal_string \"Rewards must be greater than 0.\"" + }, + "value": "Rewards must be greater than 0." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_07b361e00a40d14412aefb062ec3a5b21a5a357aad74a24a1c5679be7fdaa993", + "typeString": "literal_string \"Rewards must be greater than 0.\"" + } + ], + "id": 122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4714:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4714:59:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 129, + "nodeType": "ExpressionStatement", + "src": "4714:59:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 130, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "4787:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 131, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "poolBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 25, + "src": "4787:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 132, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4813:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4787:27:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 172, + "nodeType": "Block", + "src": "5096:49:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "506f6f6c20697320656d70747921", + "id": 169, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5117:16:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bcc280cff6a9e9b93cb698c0ecaafaa9b9bcf1ef79f855f86d90446a4a1f2a12", + "typeString": "literal_string \"Pool is empty!\"" + }, + "value": "Pool is empty!" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_bcc280cff6a9e9b93cb698c0ecaafaa9b9bcf1ef79f855f86d90446a4a1f2a12", + "typeString": "literal_string \"Pool is empty!\"" + } + ], + "id": 168, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "src": "5110:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5110:24:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 171, + "nodeType": "ExpressionStatement", + "src": "5110:24:0" + } + ] + }, + "id": 173, + "nodeType": "IfStatement", + "src": "4783:362:0", + "trueBody": { + "id": 167, + "nodeType": "Block", + "src": "4816:267:0", + "statements": [ + { + "expression": { + "id": 139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 134, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "4830:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 136, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "lastRewardTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 33, + "src": "4830:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 137, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "4858:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "4858:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4830:43:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 140, + "nodeType": "ExpressionStatement", + "src": "4830:43:0" + }, + { + "expression": { + "id": 152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 141, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "4887:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 143, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "lastRewardMultiplied", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "4887:31:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 144, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4923:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "4923:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 146, + "name": "ROUNDING_CONSTANT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11, + "src": "4935:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4923:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 148, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4922:31:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "expression": { + "id": 149, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "4956:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 150, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "poolBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 25, + "src": "4956:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4922:56:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4887:91:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 153, + "nodeType": "ExpressionStatement", + "src": "4887:91:0" + }, + { + "expression": { + "id": 159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 154, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "4992:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 156, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "rewardsBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "4992:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "expression": { + "id": 157, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "5021:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "5021:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4992:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 160, + "nodeType": "ExpressionStatement", + "src": "4992:38:0" + }, + { + "expression": { + "id": 165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 161, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "5044:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 163, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "rewardsCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "5044:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5071:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5044:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 166, + "nodeType": "ExpressionStatement", + "src": "5044:28:0" + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 175, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "5179:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 176, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "poolBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 25, + "src": "5179:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 177, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "5203:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 178, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "rewardsBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "5203:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 174, + "name": "DepositRewardsEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "5159:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5159:70:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 180, + "nodeType": "EmitStatement", + "src": "5154:75:0" + }, + { + "expression": { + "expression": { + "id": 181, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "5246:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 182, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "poolBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 25, + "src": "5246:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 121, + "id": 183, + "nodeType": "Return", + "src": "5239:29:0" + } + ] + }, + "functionSelector": "b9ba5f8b", + "id": 185, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 114, + "kind": "modifierInvocation", + "modifierName": { + "id": 113, + "name": "onlyTeam", + "nodeType": "IdentifierPath", + "referencedDeclaration": 492, + "src": "4650:8:0" + }, + "nodeType": "ModifierInvocation", + "src": "4650:8:0" + }, + { + "id": 116, + "kind": "modifierInvocation", + "modifierName": { + "id": 115, + "name": "notPaused", + "nodeType": "IdentifierPath", + "referencedDeclaration": 505, + "src": "4659:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "4659:9:0" + }, + { + "id": 118, + "kind": "modifierInvocation", + "modifierName": { + "id": 117, + "name": "notEnded", + "nodeType": "IdentifierPath", + "referencedDeclaration": 518, + "src": "4669:8:0" + }, + "nodeType": "ModifierInvocation", + "src": "4669:8:0" + } + ], + "name": "DepositRewards", + "nameLocation": "4616:14:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 112, + "nodeType": "ParameterList", + "parameters": [], + "src": "4630:2:0" + }, + "returnParameters": { + "id": 121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 120, + "mutability": "mutable", + "name": "poolbalance", + "nameLocation": "4691:11:0", + "nodeType": "VariableDeclaration", + "scope": 185, + "src": "4686:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 119, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4686:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4685:18:0" + }, + "scope": 519, + "src": "4607:668:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 294, + "nodeType": "Block", + "src": "5669:975:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 193, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "5687:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "5687:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 195, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5699:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5687:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5374616b65206d7573742062652067726561746572207468616e20302e", + "id": 197, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5702:31:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_05ede4cef51b42b42ae16acb634cc6499f98b710b0e5c5d29d1ef04228f8705b", + "typeString": "literal_string \"Stake must be greater than 0.\"" + }, + "value": "Stake must be greater than 0." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_05ede4cef51b42b42ae16acb634cc6499f98b710b0e5c5d29d1ef04228f8705b", + "typeString": "literal_string \"Stake must be greater than 0.\"" + } + ], + "id": 192, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "5679:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5679:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 199, + "nodeType": "ExpressionStatement", + "src": "5679:55:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 200, + "name": "UserList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "5748:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Stakeholder_$23_storage_$", + "typeString": "mapping(address => struct ETHpool.Stakeholder storage ref)" + } + }, + "id": 203, + "indexExpression": { + "expression": { + "id": 201, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "5757:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5757:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5748:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stakeholder_$23_storage", + "typeString": "struct ETHpool.Stakeholder storage ref" + } + }, + "id": 204, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_currentBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "5748:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5788:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5748:41:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 282, + "nodeType": "Block", + "src": "6104:459:0", + "statements": [ + { + "assignments": [ + 243 + ], + "declarations": [ + { + "constant": false, + "id": 243, + "mutability": "mutable", + "name": "newStaking", + "nameLocation": "6160:10:0", + "nodeType": "VariableDeclaration", + "scope": 282, + "src": "6155:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 242, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6155:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 249, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 244, + "name": "computeRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 406, + "src": "6173:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6173:16:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "expression": { + "id": 246, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6190:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "6190:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6173:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6155:44:0" + }, + { + "expression": { + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 250, + "name": "UserList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "6246:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Stakeholder_$23_storage_$", + "typeString": "mapping(address => struct ETHpool.Stakeholder storage ref)" + } + }, + "id": 253, + "indexExpression": { + "expression": { + "id": 251, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6255:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6255:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6246:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stakeholder_$23_storage", + "typeString": "struct ETHpool.Stakeholder storage ref" + } + }, + "id": 254, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_currentBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "6246:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 255, + "name": "newStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 243, + "src": "6286:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6246:50:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 257, + "nodeType": "ExpressionStatement", + "src": "6246:50:0" + }, + { + "expression": { + "id": 265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 258, + "name": "UserList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "6310:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Stakeholder_$23_storage_$", + "typeString": "mapping(address => struct ETHpool.Stakeholder storage ref)" + } + }, + "id": 261, + "indexExpression": { + "expression": { + "id": 259, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6319:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6319:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6310:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stakeholder_$23_storage", + "typeString": "struct ETHpool.Stakeholder storage ref" + } + }, + "id": 262, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_compositionAtStartStaking", + "nodeType": "MemberAccess", + "referencedDeclaration": 20, + "src": "6310:47:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 263, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "6360:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 264, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lastRewardMultiplied", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "6360:31:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6310:81:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 266, + "nodeType": "ExpressionStatement", + "src": "6310:81:0" + }, + { + "expression": { + "id": 274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 267, + "name": "UserList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "6424:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Stakeholder_$23_storage_$", + "typeString": "mapping(address => struct ETHpool.Stakeholder storage ref)" + } + }, + "id": 270, + "indexExpression": { + "expression": { + "id": 268, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6433:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6433:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6424:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stakeholder_$23_storage", + "typeString": "struct ETHpool.Stakeholder storage ref" + } + }, + "id": 271, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_timeStaking", + "nodeType": "MemberAccess", + "referencedDeclaration": 22, + "src": "6424:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 272, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "6460:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "6460:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6424:51:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 275, + "nodeType": "ExpressionStatement", + "src": "6424:51:0" + }, + { + "expression": { + "id": 280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 276, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "6489:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 278, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "poolBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 25, + "src": "6489:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 279, + "name": "newStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 243, + "src": "6515:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6489:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 281, + "nodeType": "ExpressionStatement", + "src": "6489:36:0" + } + ] + }, + "id": 283, + "nodeType": "IfStatement", + "src": "5744:819:0", + "trueBody": { + "id": 241, + "nodeType": "Block", + "src": "5792:298:0", + "statements": [ + { + "expression": { + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 207, + "name": "UserList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "5822:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Stakeholder_$23_storage_$", + "typeString": "mapping(address => struct ETHpool.Stakeholder storage ref)" + } + }, + "id": 210, + "indexExpression": { + "expression": { + "id": 208, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "5831:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5831:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5822:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stakeholder_$23_storage", + "typeString": "struct ETHpool.Stakeholder storage ref" + } + }, + "id": 211, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_currentBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "5822:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 212, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "5861:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "5861:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5822:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 215, + "nodeType": "ExpressionStatement", + "src": "5822:48:0" + }, + { + "expression": { + "id": 223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 216, + "name": "UserList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "5884:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Stakeholder_$23_storage_$", + "typeString": "mapping(address => struct ETHpool.Stakeholder storage ref)" + } + }, + "id": 219, + "indexExpression": { + "expression": { + "id": 217, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "5893:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5893:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5884:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stakeholder_$23_storage", + "typeString": "struct ETHpool.Stakeholder storage ref" + } + }, + "id": 220, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_compositionAtStartStaking", + "nodeType": "MemberAccess", + "referencedDeclaration": 20, + "src": "5884:47:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 221, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "5934:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 222, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lastRewardMultiplied", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "5934:31:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5884:81:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 224, + "nodeType": "ExpressionStatement", + "src": "5884:81:0" + }, + { + "expression": { + "id": 232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 225, + "name": "UserList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "5979:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Stakeholder_$23_storage_$", + "typeString": "mapping(address => struct ETHpool.Stakeholder storage ref)" + } + }, + "id": 228, + "indexExpression": { + "expression": { + "id": 226, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "5988:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5988:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5979:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stakeholder_$23_storage", + "typeString": "struct ETHpool.Stakeholder storage ref" + } + }, + "id": 229, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_timeStaking", + "nodeType": "MemberAccess", + "referencedDeclaration": 22, + "src": "5979:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 230, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "6015:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "6015:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5979:51:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 233, + "nodeType": "ExpressionStatement", + "src": "5979:51:0" + }, + { + "expression": { + "id": 239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 234, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "6044:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 236, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "poolBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 25, + "src": "6044:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "expression": { + "id": 237, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6070:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "6070:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6044:35:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 240, + "nodeType": "ExpressionStatement", + "src": "6044:35:0" + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 285, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6588:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6588:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "baseExpression": { + "id": 287, + "name": "UserList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "6600:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Stakeholder_$23_storage_$", + "typeString": "mapping(address => struct ETHpool.Stakeholder storage ref)" + } + }, + "id": 290, + "indexExpression": { + "expression": { + "id": 288, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6609:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6609:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6600:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stakeholder_$23_storage", + "typeString": "struct ETHpool.Stakeholder storage ref" + } + }, + "id": 291, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_currentBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "6600:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 284, + "name": "StakeEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "6577:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6577:60:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 293, + "nodeType": "EmitStatement", + "src": "6572:65:0" + } + ] + }, + "functionSelector": "de20bc92", + "id": 295, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 188, + "kind": "modifierInvocation", + "modifierName": { + "id": 187, + "name": "notPaused", + "nodeType": "IdentifierPath", + "referencedDeclaration": 505, + "src": "5642:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "5642:9:0" + }, + { + "id": 190, + "kind": "modifierInvocation", + "modifierName": { + "id": 189, + "name": "notEnded", + "nodeType": "IdentifierPath", + "referencedDeclaration": 518, + "src": "5652:8:0" + }, + "nodeType": "ModifierInvocation", + "src": "5652:8:0" + } + ], + "name": "Stake", + "nameLocation": "5625:5:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 186, + "nodeType": "ParameterList", + "parameters": [], + "src": "5630:2:0" + }, + "returnParameters": { + "id": 191, + "nodeType": "ParameterList", + "parameters": [], + "src": "5669:0:0" + }, + "scope": 519, + "src": "5616:1028:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 378, + "nodeType": "Block", + "src": "6870:816:0", + "statements": [ + { + "assignments": [ + 305 + ], + "declarations": [ + { + "constant": false, + "id": 305, + "mutability": "mutable", + "name": "balanceFromPool", + "nameLocation": "6885:15:0", + "nodeType": "VariableDeclaration", + "scope": 378, + "src": "6880:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 304, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6880:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 311, + "initialValue": { + "expression": { + "baseExpression": { + "id": 306, + "name": "UserList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "6903:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Stakeholder_$23_storage_$", + "typeString": "mapping(address => struct ETHpool.Stakeholder storage ref)" + } + }, + "id": 309, + "indexExpression": { + "expression": { + "id": 307, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6912:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6912:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6903:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stakeholder_$23_storage", + "typeString": "struct ETHpool.Stakeholder storage ref" + } + }, + "id": 310, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_currentBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "6903:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6880:59:0" + }, + { + "assignments": [ + 313 + ], + "declarations": [ + { + "constant": false, + "id": 313, + "mutability": "mutable", + "name": "balanceFromRewards", + "nameLocation": "6964:18:0", + "nodeType": "VariableDeclaration", + "scope": 378, + "src": "6959:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 312, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6959:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 316, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 314, + "name": "computeRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 406, + "src": "6985:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6985:16:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6959:42:0" + }, + { + "assignments": [ + 318 + ], + "declarations": [ + { + "constant": false, + "id": 318, + "mutability": "mutable", + "name": "allowedToWithdraw", + "nameLocation": "7043:17:0", + "nodeType": "VariableDeclaration", + "scope": 378, + "src": "7038:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 317, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7038:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 322, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 319, + "name": "balanceFromPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "7064:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 320, + "name": "balanceFromRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 313, + "src": "7080:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7064:34:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7038:60:0" + }, + { + "expression": { + "id": 327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 323, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "7109:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 325, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "poolBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 25, + "src": "7109:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 326, + "name": "balanceFromPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "7135:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7109:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 328, + "nodeType": "ExpressionStatement", + "src": "7109:41:0" + }, + { + "expression": { + "id": 333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 329, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "7173:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 331, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "rewardsBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "7173:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 332, + "name": "balanceFromRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 313, + "src": "7202:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7173:47:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 334, + "nodeType": "ExpressionStatement", + "src": "7173:47:0" + }, + { + "expression": { + "id": 341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 335, + "name": "UserList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "7246:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Stakeholder_$23_storage_$", + "typeString": "mapping(address => struct ETHpool.Stakeholder storage ref)" + } + }, + "id": 338, + "indexExpression": { + "expression": { + "id": 336, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "7255:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7255:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7246:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stakeholder_$23_storage", + "typeString": "struct ETHpool.Stakeholder storage ref" + } + }, + "id": 339, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_currentBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "7246:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 340, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7285:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7246:40:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 342, + "nodeType": "ExpressionStatement", + "src": "7246:40:0" + }, + { + "condition": { + "arguments": [ + { + "id": 349, + "name": "allowedToWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 318, + "src": "7393:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 345, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "7376:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7376:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7368:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 343, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7368:8:0", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7368:19:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "send", + "nodeType": "MemberAccess", + "src": "7368:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) returns (bool)" + } + }, + "id": 350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7368:43:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 376, + "nodeType": "Block", + "src": "7579:101:0", + "statements": [ + { + "expression": { + "id": 372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 366, + "name": "UserList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "7593:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Stakeholder_$23_storage_$", + "typeString": "mapping(address => struct ETHpool.Stakeholder storage ref)" + } + }, + "id": 369, + "indexExpression": { + "expression": { + "id": 367, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "7602:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7602:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7593:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stakeholder_$23_storage", + "typeString": "struct ETHpool.Stakeholder storage ref" + } + }, + "id": 370, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_currentBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "7593:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 371, + "name": "balanceFromPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "7632:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7593:54:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 373, + "nodeType": "ExpressionStatement", + "src": "7593:54:0" + }, + { + "expression": { + "hexValue": "30", + "id": 374, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7668:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 303, + "id": 375, + "nodeType": "Return", + "src": "7661:8:0" + } + ] + }, + "id": 377, + "nodeType": "IfStatement", + "src": "7364:316:0", + "trueBody": { + "id": 365, + "nodeType": "Block", + "src": "7413:160:0", + "statements": [ + { + "expression": { + "id": 355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "7435:27:0", + "subExpression": { + "baseExpression": { + "id": 351, + "name": "UserList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "7442:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Stakeholder_$23_storage_$", + "typeString": "mapping(address => struct ETHpool.Stakeholder storage ref)" + } + }, + "id": 354, + "indexExpression": { + "expression": { + "id": 352, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "7451:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7451:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7442:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stakeholder_$23_storage", + "typeString": "struct ETHpool.Stakeholder storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 356, + "nodeType": "ExpressionStatement", + "src": "7435:27:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 358, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "7495:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7495:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 360, + "name": "allowedToWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 318, + "src": "7506:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 357, + "name": "WithdrawEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "7481:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7481:43:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 362, + "nodeType": "EmitStatement", + "src": "7476:48:0" + }, + { + "expression": { + "id": 363, + "name": "allowedToWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 318, + "src": "7545:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 303, + "id": 364, + "nodeType": "Return", + "src": "7538:24:0" + } + ] + } + } + ] + }, + "functionSelector": "57ea89b6", + "id": 379, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 298, + "kind": "modifierInvocation", + "modifierName": { + "id": 297, + "name": "onlyUsers", + "nodeType": "IdentifierPath", + "referencedDeclaration": 477, + "src": "6832:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "6832:9:0" + }, + { + "id": 300, + "kind": "modifierInvocation", + "modifierName": { + "id": 299, + "name": "notPaused", + "nodeType": "IdentifierPath", + "referencedDeclaration": 505, + "src": "6842:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "6842:9:0" + } + ], + "name": "Withdraw", + "nameLocation": "6812:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 296, + "nodeType": "ParameterList", + "parameters": [], + "src": "6820:2:0" + }, + "returnParameters": { + "id": 303, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 302, + "mutability": "mutable", + "name": "sent", + "nameLocation": "6865:4:0", + "nodeType": "VariableDeclaration", + "scope": 379, + "src": "6860:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 301, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6860:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6859:11:0" + }, + "scope": 519, + "src": "6803:883:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 405, + "nodeType": "Block", + "src": "7839:170:0", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 386, + "name": "UserList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "7857:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Stakeholder_$23_storage_$", + "typeString": "mapping(address => struct ETHpool.Stakeholder storage ref)" + } + }, + "id": 389, + "indexExpression": { + "expression": { + "id": 387, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "7866:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7866:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7857:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stakeholder_$23_storage", + "typeString": "struct ETHpool.Stakeholder storage ref" + } + }, + "id": 390, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_currentBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "7857:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 391, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "7898:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 392, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lastRewardMultiplied", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "7898:31:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "expression": { + "baseExpression": { + "id": 393, + "name": "UserList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "7932:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Stakeholder_$23_storage_$", + "typeString": "mapping(address => struct ETHpool.Stakeholder storage ref)" + } + }, + "id": 396, + "indexExpression": { + "expression": { + "id": 394, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "7941:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7941:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7932:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stakeholder_$23_storage", + "typeString": "struct ETHpool.Stakeholder storage ref" + } + }, + "id": 397, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_compositionAtStartStaking", + "nodeType": "MemberAccess", + "referencedDeclaration": 20, + "src": "7932:47:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7898:81:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 399, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7896:84:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7857:123:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 401, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7856:125:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 402, + "name": "ROUNDING_CONSTANT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11, + "src": "7984:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7856:145:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 385, + "id": 404, + "nodeType": "Return", + "src": "7849:152:0" + } + ] + }, + "functionSelector": "7c1b7f8a", + "id": 406, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 382, + "kind": "modifierInvocation", + "modifierName": { + "id": 381, + "name": "onlyUsers", + "nodeType": "IdentifierPath", + "referencedDeclaration": 477, + "src": "7803:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "7803:9:0" + } + ], + "name": "computeRewards", + "nameLocation": "7774:14:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 380, + "nodeType": "ParameterList", + "parameters": [], + "src": "7788:2:0" + }, + "returnParameters": { + "id": 385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 384, + "mutability": "mutable", + "name": "withdrawable", + "nameLocation": "7826:12:0", + "nodeType": "VariableDeclaration", + "scope": 406, + "src": "7821:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 383, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7821:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7820:19:0" + }, + "scope": 519, + "src": "7765:244:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 418, + "nodeType": "Block", + "src": "8090:105:0", + "statements": [ + { + "expression": { + "id": 416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 411, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "8156:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 413, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 36, + "src": "8156:17:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_State_$8", + "typeString": "enum ETHpool.State" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 414, + "name": "State", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "8176:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_State_$8_$", + "typeString": "type(enum ETHpool.State)" + } + }, + "id": 415, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Paused", + "nodeType": "MemberAccess", + "referencedDeclaration": 6, + "src": "8176:12:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_State_$8", + "typeString": "enum ETHpool.State" + } + }, + "src": "8156:32:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_State_$8", + "typeString": "enum ETHpool.State" + } + }, + "id": 417, + "nodeType": "ExpressionStatement", + "src": "8156:32:0" + } + ] + }, + "functionSelector": "aa09d5b7", + "id": 419, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 409, + "kind": "modifierInvocation", + "modifierName": { + "id": 408, + "name": "onlyTeam", + "nodeType": "IdentifierPath", + "referencedDeclaration": 492, + "src": "8081:8:0" + }, + "nodeType": "ModifierInvocation", + "src": "8081:8:0" + } + ], + "name": "pausePool", + "nameLocation": "8060:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 407, + "nodeType": "ParameterList", + "parameters": [], + "src": "8069:2:0" + }, + "returnParameters": { + "id": 410, + "nodeType": "ParameterList", + "parameters": [], + "src": "8090:0:0" + }, + "scope": 519, + "src": "8051:144:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 431, + "nodeType": "Block", + "src": "8238:110:0", + "statements": [ + { + "expression": { + "id": 429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 424, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "8248:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 426, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 36, + "src": "8248:17:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_State_$8", + "typeString": "enum ETHpool.State" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 427, + "name": "State", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "8268:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_State_$8_$", + "typeString": "type(enum ETHpool.State)" + } + }, + "id": 428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Ended", + "nodeType": "MemberAccess", + "referencedDeclaration": 7, + "src": "8268:11:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_State_$8", + "typeString": "enum ETHpool.State" + } + }, + "src": "8248:31:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_State_$8", + "typeString": "enum ETHpool.State" + } + }, + "id": 430, + "nodeType": "ExpressionStatement", + "src": "8248:31:0" + } + ] + }, + "functionSelector": "2d42cf7d", + "id": 432, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 422, + "kind": "modifierInvocation", + "modifierName": { + "id": 421, + "name": "onlyTeam", + "nodeType": "IdentifierPath", + "referencedDeclaration": 492, + "src": "8229:8:0" + }, + "nodeType": "ModifierInvocation", + "src": "8229:8:0" + } + ], + "name": "endPool", + "nameLocation": "8210:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 420, + "nodeType": "ParameterList", + "parameters": [], + "src": "8217:2:0" + }, + "returnParameters": { + "id": 423, + "nodeType": "ParameterList", + "parameters": [], + "src": "8238:0:0" + }, + "scope": 519, + "src": "8201:147:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 444, + "nodeType": "Block", + "src": "8394:82:0", + "statements": [ + { + "expression": { + "id": 442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 437, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "8404:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 439, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 36, + "src": "8404:17:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_State_$8", + "typeString": "enum ETHpool.State" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 440, + "name": "State", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "8424:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_State_$8_$", + "typeString": "type(enum ETHpool.State)" + } + }, + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Running", + "nodeType": "MemberAccess", + "referencedDeclaration": 5, + "src": "8424:13:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_State_$8", + "typeString": "enum ETHpool.State" + } + }, + "src": "8404:33:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_State_$8", + "typeString": "enum ETHpool.State" + } + }, + "id": 443, + "nodeType": "ExpressionStatement", + "src": "8404:33:0" + } + ] + }, + "functionSelector": "11ec106b", + "id": 445, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 435, + "kind": "modifierInvocation", + "modifierName": { + "id": 434, + "name": "onlyTeam", + "nodeType": "IdentifierPath", + "referencedDeclaration": 492, + "src": "8385:8:0" + }, + "nodeType": "ModifierInvocation", + "src": "8385:8:0" + } + ], + "name": "resumePool", + "nameLocation": "8363:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 433, + "nodeType": "ParameterList", + "parameters": [], + "src": "8373:2:0" + }, + "returnParameters": { + "id": 436, + "nodeType": "ParameterList", + "parameters": [], + "src": "8394:0:0" + }, + "scope": 519, + "src": "8354:122:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 461, + "nodeType": "Block", + "src": "8553:47:0", + "statements": [ + { + "expression": { + "id": 459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 454, + "name": "Team", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "8563:4:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TeamMember_$16_storage_$", + "typeString": "mapping(address => struct ETHpool.TeamMember storage ref)" + } + }, + "id": 456, + "indexExpression": { + "id": 455, + "name": "teamAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 447, + "src": "8568:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8563:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TeamMember_$16_storage", + "typeString": "struct ETHpool.TeamMember storage ref" + } + }, + "id": 457, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_role", + "nodeType": "MemberAccess", + "referencedDeclaration": 15, + "src": "8563:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 458, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 449, + "src": "8589:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8563:30:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 460, + "nodeType": "ExpressionStatement", + "src": "8563:30:0" + } + ] + }, + "functionSelector": "ac0679a6", + "id": 462, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 452, + "kind": "modifierInvocation", + "modifierName": { + "id": 451, + "name": "onlyTeam", + "nodeType": "IdentifierPath", + "referencedDeclaration": 492, + "src": "8544:8:0" + }, + "nodeType": "ModifierInvocation", + "src": "8544:8:0" + } + ], + "name": "modifyTeam", + "nameLocation": "8491:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 450, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 447, + "mutability": "mutable", + "name": "teamAddress", + "nameLocation": "8510:11:0", + "nodeType": "VariableDeclaration", + "scope": 462, + "src": "8502:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 446, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8502:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 449, + "mutability": "mutable", + "name": "role", + "nameLocation": "8529:4:0", + "nodeType": "VariableDeclaration", + "scope": 462, + "src": "8524:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 448, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8524:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8501:33:0" + }, + "returnParameters": { + "id": 453, + "nodeType": "ParameterList", + "parameters": [], + "src": "8553:0:0" + }, + "scope": 519, + "src": "8482:118:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 476, + "nodeType": "Block", + "src": "8651:123:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 465, + "name": "UserList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "8670:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Stakeholder_$23_storage_$", + "typeString": "mapping(address => struct ETHpool.Stakeholder storage ref)" + } + }, + "id": 468, + "indexExpression": { + "expression": { + "id": 466, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "8679:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "8679:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8670:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stakeholder_$23_storage", + "typeString": "struct ETHpool.Stakeholder storage ref" + } + }, + "id": 469, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_currentBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "8670:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8709:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8670:40:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4f6e6c79207374616b65686f6c646572732063616e2075736520746869732066756e6374696f6e2e", + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8713:42:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_65cf49bb6119b71c8bb66dd5c8bcb70b360e603c8c362e9623afd68faad0b328", + "typeString": "literal_string \"Only stakeholders can use this function.\"" + }, + "value": "Only stakeholders can use this function." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_65cf49bb6119b71c8bb66dd5c8bcb70b360e603c8c362e9623afd68faad0b328", + "typeString": "literal_string \"Only stakeholders can use this function.\"" + } + ], + "id": 464, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "8661:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8661:95:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 474, + "nodeType": "ExpressionStatement", + "src": "8661:95:0" + }, + { + "id": 475, + "nodeType": "PlaceholderStatement", + "src": "8766:1:0" + } + ] + }, + "id": 477, + "name": "onlyUsers", + "nameLocation": "8639:9:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 463, + "nodeType": "ParameterList", + "parameters": [], + "src": "8648:2:0" + }, + "src": "8630:144:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 491, + "nodeType": "Block", + "src": "8800:108:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 480, + "name": "Team", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "8818:4:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TeamMember_$16_storage_$", + "typeString": "mapping(address => struct ETHpool.TeamMember storage ref)" + } + }, + "id": 483, + "indexExpression": { + "expression": { + "id": 481, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "8823:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "8823:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8818:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TeamMember_$16_storage", + "typeString": "struct ETHpool.TeamMember storage ref" + } + }, + "id": 484, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_role", + "nodeType": "MemberAccess", + "referencedDeclaration": 15, + "src": "8818:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "74727565", + "id": 485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8844:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "8818:30:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4f6e6c7920746865205465616d2063616e2063616c6c20746869732066756e6374696f6e2e", + "id": 487, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8850:39:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_77ce0874b137b60e93c01f56799e55f28d65db359f40d58d0f38dfc1b136e76f", + "typeString": "literal_string \"Only the Team can call this function.\"" + }, + "value": "Only the Team can call this function." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_77ce0874b137b60e93c01f56799e55f28d65db359f40d58d0f38dfc1b136e76f", + "typeString": "literal_string \"Only the Team can call this function.\"" + } + ], + "id": 479, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "8810:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8810:80:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 489, + "nodeType": "ExpressionStatement", + "src": "8810:80:0" + }, + { + "id": 490, + "nodeType": "PlaceholderStatement", + "src": "8900:1:0" + } + ] + }, + "id": 492, + "name": "onlyTeam", + "nameLocation": "8789:8:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 478, + "nodeType": "ParameterList", + "parameters": [], + "src": "8797:2:0" + }, + "src": "8780:128:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 504, + "nodeType": "Block", + "src": "8935:124:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_enum$_State_$8", + "typeString": "enum ETHpool.State" + }, + "id": 499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 495, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "8954:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 496, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 36, + "src": "8954:17:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_State_$8", + "typeString": "enum ETHpool.State" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 497, + "name": "State", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "8975:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_State_$8_$", + "typeString": "type(enum ETHpool.State)" + } + }, + "id": 498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Paused", + "nodeType": "MemberAccess", + "referencedDeclaration": 6, + "src": "8975:12:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_State_$8", + "typeString": "enum ETHpool.State" + } + }, + "src": "8954:33:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "455448706f6f6c206973207061757365642e2054686973206f7065726174696f6e206973206e6f7420616c6c6f7765642e", + "id": 500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8989:51:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d2355db99aa8f3f89b73eba5cd61e14fe5279a0cb8f0d810ce5eb08bae9c5db9", + "typeString": "literal_string \"ETHpool is paused. This operation is not allowed.\"" + }, + "value": "ETHpool is paused. This operation is not allowed." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d2355db99aa8f3f89b73eba5cd61e14fe5279a0cb8f0d810ce5eb08bae9c5db9", + "typeString": "literal_string \"ETHpool is paused. This operation is not allowed.\"" + } + ], + "id": 494, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "8945:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8945:96:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 502, + "nodeType": "ExpressionStatement", + "src": "8945:96:0" + }, + { + "id": 503, + "nodeType": "PlaceholderStatement", + "src": "9051:1:0" + } + ] + }, + "id": 505, + "name": "notPaused", + "nameLocation": "8923:9:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 493, + "nodeType": "ParameterList", + "parameters": [], + "src": "8932:2:0" + }, + "src": "8914:145:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 517, + "nodeType": "Block", + "src": "9085:119:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_enum$_State_$8", + "typeString": "enum ETHpool.State" + }, + "id": 512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 508, + "name": "poolStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "9104:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Pool_$37_storage", + "typeString": "struct ETHpool.Pool storage ref" + } + }, + "id": 509, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 36, + "src": "9104:17:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_State_$8", + "typeString": "enum ETHpool.State" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 510, + "name": "State", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "9125:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_State_$8_$", + "typeString": "type(enum ETHpool.State)" + } + }, + "id": 511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Ended", + "nodeType": "MemberAccess", + "referencedDeclaration": 7, + "src": "9125:11:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_State_$8", + "typeString": "enum ETHpool.State" + } + }, + "src": "9104:32:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "455448706f6f6c20697320656e6465642e204f6e6c79207769746864726177616c7320616c6c6f7765642e", + "id": 513, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9138:45:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1ed09dc327bb64f37a652f240dba7a4d6793962c301287c466770b5076492055", + "typeString": "literal_string \"ETHpool is ended. Only withdrawals allowed.\"" + }, + "value": "ETHpool is ended. Only withdrawals allowed." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1ed09dc327bb64f37a652f240dba7a4d6793962c301287c466770b5076492055", + "typeString": "literal_string \"ETHpool is ended. Only withdrawals allowed.\"" + } + ], + "id": 507, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "9095:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9095:89:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 515, + "nodeType": "ExpressionStatement", + "src": "9095:89:0" + }, + { + "id": 516, + "nodeType": "PlaceholderStatement", + "src": "9194:1:0" + } + ] + }, + "id": 518, + "name": "notEnded", + "nameLocation": "9074:8:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 506, + "nodeType": "ParameterList", + "parameters": [], + "src": "9082:2:0" + }, + "src": "9065:139:0", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 520, + "src": "2826:6380:0", + "usedErrors": [] + } + ], + "src": "36:9170:0" + }, + "compiler": { + "name": "solc", + "version": "0.8.13+commit.abaa5c0e.Emscripten.clang" + }, + "networks": { + "3": { + "events": {}, + "links": {}, + "address": "0x40985d7C0357e31332860FfdeA279e23Ec0d5fC3", + "transactionHash": "0x3f42621b376c1f549753dee72d834fefe4bc2d4fdc311c7d403afc79d9bc891d" + }, + "5777": { + "events": {}, + "links": {}, + "address": "0xF86028676549f778d2b4EC618f9C69d4b24B9016", + "transactionHash": "0x7616a4ae5d47c32894bc5361b05c6b0426721fc83cbdbb2efda54752161f28b9" + } + }, + "schemaVersion": "3.4.7", + "updatedAt": "2022-04-13T20:54:09.400Z", + "networkType": "ethereum", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/build/contracts/Migrations.json b/build/contracts/Migrations.json new file mode 100644 index 00000000..00ef147a --- /dev/null +++ b/build/contracts/Migrations.json @@ -0,0 +1,1940 @@ +{ + "contractName": "Migrations", + "abi": [ + { + "inputs": [], + "name": "last_completed_migration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "completed", + "type": "uint256" + } + ], + "name": "setCompleted", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/Migrations.sol\":{\"keccak256\":\"0x7eaedbb1a3e4e0f585d9063393872f88ded247ca3c3c3c8492ea18e7629a6411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a3eb571cee910095df65a06a1c1d3f89187c72a3c184ef87a7538d9aa39ad07\",\"dweb:/ipfs/QmdqR3vrSSGR49qFGZr49Mb39z7dgD6tSzEDoaqtM31o61\"]}},\"version\":1}", + "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561005057600080fd5b50610327806100606000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610064578063fdacd57614610082575b600080fd5b61004e61009e565b60405161005b9190610179565b60405180910390f35b61006c6100a4565b60405161007991906101d5565b60405180910390f35b61009c60048036038101906100979190610221565b6100c8565b005b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014d906102d1565b60405180910390fd5b8060018190555050565b6000819050919050565b61017381610160565b82525050565b600060208201905061018e600083018461016a565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101bf82610194565b9050919050565b6101cf816101b4565b82525050565b60006020820190506101ea60008301846101c6565b92915050565b600080fd5b6101fe81610160565b811461020957600080fd5b50565b60008135905061021b816101f5565b92915050565b600060208284031215610237576102366101f0565b5b60006102458482850161020c565b91505092915050565b600082825260208201905092915050565b7f546869732066756e6374696f6e206973207265737472696374656420746f207460008201527f686520636f6e74726163742773206f776e657200000000000000000000000000602082015250565b60006102bb60338361024e565b91506102c68261025f565b604082019050919050565b600060208201905081810360008301526102ea816102ae565b905091905056fea26469706673582212202772102c6bf65909b8a1ed2bbf4af4f042e10a1097612ea089ae207eeb38038964736f6c634300080d0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610064578063fdacd57614610082575b600080fd5b61004e61009e565b60405161005b9190610179565b60405180910390f35b61006c6100a4565b60405161007991906101d5565b60405180910390f35b61009c60048036038101906100979190610221565b6100c8565b005b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014d906102d1565b60405180910390fd5b8060018190555050565b6000819050919050565b61017381610160565b82525050565b600060208201905061018e600083018461016a565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101bf82610194565b9050919050565b6101cf816101b4565b82525050565b60006020820190506101ea60008301846101c6565b92915050565b600080fd5b6101fe81610160565b811461020957600080fd5b50565b60008135905061021b816101f5565b92915050565b600060208284031215610237576102366101f0565b5b60006102458482850161020c565b91505092915050565b600082825260208201905092915050565b7f546869732066756e6374696f6e206973207265737472696374656420746f207460008201527f686520636f6e74726163742773206f776e657200000000000000000000000000602082015250565b60006102bb60338361024e565b91506102c68261025f565b604082019050919050565b600060208201905081810360008301526102ea816102ae565b905091905056fea26469706673582212202772102c6bf65909b8a1ed2bbf4af4f042e10a1097612ea089ae207eeb38038964736f6c634300080d0033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:3176:2", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "52:32:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "62:16:2", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "73:5:2" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "62:7:2" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "34:5:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "44:7:2", + "type": "" + } + ], + "src": "7:77:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "155:53:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "172:3:2" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "195:5:2" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "177:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "177:24:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "165:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "165:37:2" + }, + "nodeType": "YulExpressionStatement", + "src": "165:37:2" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "143:5:2", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "150:3:2", + "type": "" + } + ], + "src": "90:118:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "312:124:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "322:26:2", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "334:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "345:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "330:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "330:18:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "322:4:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "402:6:2" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "415:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "426:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "411:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "411:17:2" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "358:43:2" + }, + "nodeType": "YulFunctionCall", + "src": "358:71:2" + }, + "nodeType": "YulExpressionStatement", + "src": "358:71:2" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "284:9:2", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "296:6:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "307:4:2", + "type": "" + } + ], + "src": "214:222:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "487:81:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "497:65:2", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "512:5:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "519:42:2", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "508:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "508:54:2" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "497:7:2" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "469:5:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "479:7:2", + "type": "" + } + ], + "src": "442:126:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "619:51:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "629:35:2", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "658:5:2" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "640:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "640:24:2" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "629:7:2" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "601:5:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "611:7:2", + "type": "" + } + ], + "src": "574:96:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "741:53:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "758:3:2" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "781:5:2" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "763:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "763:24:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "751:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "751:37:2" + }, + "nodeType": "YulExpressionStatement", + "src": "751:37:2" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "729:5:2", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "736:3:2", + "type": "" + } + ], + "src": "676:118:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "898:124:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "908:26:2", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "920:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "931:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "916:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "916:18:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "908:4:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "988:6:2" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1001:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1012:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "997:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "997:17:2" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "944:43:2" + }, + "nodeType": "YulFunctionCall", + "src": "944:71:2" + }, + "nodeType": "YulExpressionStatement", + "src": "944:71:2" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "870:9:2", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "882:6:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "893:4:2", + "type": "" + } + ], + "src": "800:222:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1068:35:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1078:19:2", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1094:2:2", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1088:5:2" + }, + "nodeType": "YulFunctionCall", + "src": "1088:9:2" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1078:6:2" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1061:6:2", + "type": "" + } + ], + "src": "1028:75:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1198:28:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1215:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1218:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1208:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "1208:12:2" + }, + "nodeType": "YulExpressionStatement", + "src": "1208:12:2" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1109:117:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1321:28:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1338:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1331:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "1331:12:2" + }, + "nodeType": "YulExpressionStatement", + "src": "1331:12:2" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1232:117:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1398:79:2", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1455:16:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1464:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1467:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1457:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "1457:12:2" + }, + "nodeType": "YulExpressionStatement", + "src": "1457:12:2" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1421:5:2" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1446:5:2" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1428:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "1428:24:2" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1418:2:2" + }, + "nodeType": "YulFunctionCall", + "src": "1418:35:2" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1411:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "1411:43:2" + }, + "nodeType": "YulIf", + "src": "1408:63:2" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1391:5:2", + "type": "" + } + ], + "src": "1355:122:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1535:87:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1545:29:2", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1567:6:2" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1554:12:2" + }, + "nodeType": "YulFunctionCall", + "src": "1554:20:2" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1545:5:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1610:5:2" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "1583:26:2" + }, + "nodeType": "YulFunctionCall", + "src": "1583:33:2" + }, + "nodeType": "YulExpressionStatement", + "src": "1583:33:2" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1513:6:2", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1521:3:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1529:5:2", + "type": "" + } + ], + "src": "1483:139:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1694:263:2", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1740:83:2", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1742:77:2" + }, + "nodeType": "YulFunctionCall", + "src": "1742:79:2" + }, + "nodeType": "YulExpressionStatement", + "src": "1742:79:2" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1715:7:2" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1724:9:2" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1711:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "1711:23:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1736:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1707:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "1707:32:2" + }, + "nodeType": "YulIf", + "src": "1704:119:2" + }, + { + "nodeType": "YulBlock", + "src": "1833:117:2", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1848:15:2", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1862:1:2", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1852:6:2", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1877:63:2", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1912:9:2" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1923:6:2" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1908:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "1908:22:2" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1932:7:2" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1887:20:2" + }, + "nodeType": "YulFunctionCall", + "src": "1887:53:2" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1877:6:2" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1664:9:2", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1675:7:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1687:6:2", + "type": "" + } + ], + "src": "1628:329:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2059:73:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2076:3:2" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2081:6:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2069:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "2069:19:2" + }, + "nodeType": "YulExpressionStatement", + "src": "2069:19:2" + }, + { + "nodeType": "YulAssignment", + "src": "2097:29:2", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2116:3:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2121:4:2", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2112:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "2112:14:2" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "2097:11:2" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2031:3:2", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2036:6:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "2047:11:2", + "type": "" + } + ], + "src": "1963:169:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2244:132:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "2266:6:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2274:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2262:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "2262:14:2" + }, + { + "hexValue": "546869732066756e6374696f6e206973207265737472696374656420746f2074", + "kind": "string", + "nodeType": "YulLiteral", + "src": "2278:34:2", + "type": "", + "value": "This function is restricted to t" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2255:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "2255:58:2" + }, + "nodeType": "YulExpressionStatement", + "src": "2255:58:2" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "2334:6:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2342:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2330:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "2330:15:2" + }, + { + "hexValue": "686520636f6e74726163742773206f776e6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "2347:21:2", + "type": "", + "value": "he contract's owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2323:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "2323:46:2" + }, + "nodeType": "YulExpressionStatement", + "src": "2323:46:2" + } + ] + }, + "name": "store_literal_in_memory_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "2236:6:2", + "type": "" + } + ], + "src": "2138:238:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2528:220:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2538:74:2", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2604:3:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2609:2:2", + "type": "", + "value": "51" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2545:58:2" + }, + "nodeType": "YulFunctionCall", + "src": "2545:67:2" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2538:3:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2710:3:2" + } + ], + "functionName": { + "name": "store_literal_in_memory_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1", + "nodeType": "YulIdentifier", + "src": "2621:88:2" + }, + "nodeType": "YulFunctionCall", + "src": "2621:93:2" + }, + "nodeType": "YulExpressionStatement", + "src": "2621:93:2" + }, + { + "nodeType": "YulAssignment", + "src": "2723:19:2", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2734:3:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2739:2:2", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2730:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "2730:12:2" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2723:3:2" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2516:3:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2524:3:2", + "type": "" + } + ], + "src": "2382:366:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2925:248:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2935:26:2", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2947:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2958:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2943:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "2943:18:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2935:4:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2982:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2993:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2978:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "2978:17:2" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3001:4:2" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3007:9:2" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2997:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "2997:20:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2971:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "2971:47:2" + }, + "nodeType": "YulExpressionStatement", + "src": "2971:47:2" + }, + { + "nodeType": "YulAssignment", + "src": "3027:139:2", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3161:4:2" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "3035:124:2" + }, + "nodeType": "YulFunctionCall", + "src": "3035:131:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3027:4:2" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2905:9:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2920:4:2", + "type": "" + } + ], + "src": "2754:419:2" + } + ] + }, + "contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1(memPtr) {\n\n mstore(add(memPtr, 0), \"This function is restricted to t\")\n\n mstore(add(memPtr, 32), \"he contract's owner\")\n\n }\n\n function abi_encode_t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 51)\n store_literal_in_memory_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 2, + "language": "Yul", + "name": "#utility.yul" + } + ], + "sourceMap": "66:352:1:-:0;;;113:10;90:33;;;;;;;;;;;;;;;;;;;;66:352;;;;;;;;;;;;;;;;", + "deployedSourceMap": "66:352:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;127:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;90:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;313:103;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;127:36;;;;:::o;90:33::-;;;;;;;;;;;;:::o;313:103::-;225:5;;;;;;;;;;211:19;;:10;:19;;;196:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;402:9:::1;375:24;:36;;;;313:103:::0;:::o;7:77:2:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:96::-;611:7;640:24;658:5;640:24;:::i;:::-;629:35;;574:96;;;:::o;676:118::-;763:24;781:5;763:24;:::i;:::-;758:3;751:37;676:118;;:::o;800:222::-;893:4;931:2;920:9;916:18;908:26;;944:71;1012:1;1001:9;997:17;988:6;944:71;:::i;:::-;800:222;;;;:::o;1109:117::-;1218:1;1215;1208:12;1355:122;1428:24;1446:5;1428:24;:::i;:::-;1421:5;1418:35;1408:63;;1467:1;1464;1457:12;1408:63;1355:122;:::o;1483:139::-;1529:5;1567:6;1554:20;1545:29;;1583:33;1610:5;1583:33;:::i;:::-;1483:139;;;;:::o;1628:329::-;1687:6;1736:2;1724:9;1715:7;1711:23;1707:32;1704:119;;;1742:79;;:::i;:::-;1704:119;1862:1;1887:53;1932:7;1923:6;1912:9;1908:22;1887:53;:::i;:::-;1877:63;;1833:117;1628:329;;;;:::o;1963:169::-;2047:11;2081:6;2076:3;2069:19;2121:4;2116:3;2112:14;2097:29;;1963:169;;;;:::o;2138:238::-;2278:34;2274:1;2266:6;2262:14;2255:58;2347:21;2342:2;2334:6;2330:15;2323:46;2138:238;:::o;2382:366::-;2524:3;2545:67;2609:2;2604:3;2545:67;:::i;:::-;2538:74;;2621:93;2710:3;2621:93;:::i;:::-;2739:2;2734:3;2730:12;2723:19;;2382:366;;;:::o;2754:419::-;2920:4;2958:2;2947:9;2943:18;2935:26;;3007:9;3001:4;2997:20;2993:1;2982:9;2978:17;2971:47;3035:131;3161:4;3035:131;:::i;:::-;3027:139;;2754:419;;;:::o", + "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.22 <0.9.0;\n\ncontract Migrations {\n address public owner = msg.sender;\n uint public last_completed_migration;\n\n modifier restricted() {\n require(\n msg.sender == owner,\n \"This function is restricted to the contract's owner\"\n );\n _;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n}\n", + "sourcePath": "T:\\Desarrollos\\Experimentos\\Exactly\\exactly-private\\contracts\\Migrations.sol", + "ast": { + "absolutePath": "project:/contracts/Migrations.sol", + "exportedSymbols": { + "Migrations": [ + 552 + ] + }, + "id": 553, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 521, + "literals": [ + "solidity", + ">=", + "0.4", + ".22", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "32:32:1" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Migrations", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 552, + "linearizedBaseContracts": [ + 552 + ], + "name": "Migrations", + "nameLocation": "75:10:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "8da5cb5b", + "id": 525, + "mutability": "mutable", + "name": "owner", + "nameLocation": "105:5:1", + "nodeType": "VariableDeclaration", + "scope": 552, + "src": "90:33:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 522, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "90:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "expression": { + "id": 523, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "113:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "113:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "445df0ac", + "id": 527, + "mutability": "mutable", + "name": "last_completed_migration", + "nameLocation": "139:24:1", + "nodeType": "VariableDeclaration", + "scope": 552, + "src": "127:36:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 526, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "127:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 538, + "nodeType": "Block", + "src": "190:119:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 530, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "211:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "211:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 532, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 525, + "src": "225:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "211:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546869732066756e6374696f6e206973207265737472696374656420746f2074686520636f6e74726163742773206f776e6572", + "id": 534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "238:53:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1", + "typeString": "literal_string \"This function is restricted to the contract's owner\"" + }, + "value": "This function is restricted to the contract's owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1", + "typeString": "literal_string \"This function is restricted to the contract's owner\"" + } + ], + "id": 529, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "196:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "196:101:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 536, + "nodeType": "ExpressionStatement", + "src": "196:101:1" + }, + { + "id": 537, + "nodeType": "PlaceholderStatement", + "src": "303:1:1" + } + ] + }, + "id": 539, + "name": "restricted", + "nameLocation": "177:10:1", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 528, + "nodeType": "ParameterList", + "parameters": [], + "src": "187:2:1" + }, + "src": "168:141:1", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 550, + "nodeType": "Block", + "src": "369:47:1", + "statements": [ + { + "expression": { + "id": 548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 546, + "name": "last_completed_migration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "375:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 547, + "name": "completed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 541, + "src": "402:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "375:36:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 549, + "nodeType": "ExpressionStatement", + "src": "375:36:1" + } + ] + }, + "functionSelector": "fdacd576", + "id": 551, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 544, + "kind": "modifierInvocation", + "modifierName": { + "id": 543, + "name": "restricted", + "nodeType": "IdentifierPath", + "referencedDeclaration": 539, + "src": "358:10:1" + }, + "nodeType": "ModifierInvocation", + "src": "358:10:1" + } + ], + "name": "setCompleted", + "nameLocation": "322:12:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 542, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 541, + "mutability": "mutable", + "name": "completed", + "nameLocation": "340:9:1", + "nodeType": "VariableDeclaration", + "scope": 551, + "src": "335:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 540, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "335:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "334:16:1" + }, + "returnParameters": { + "id": 545, + "nodeType": "ParameterList", + "parameters": [], + "src": "369:0:1" + }, + "scope": 552, + "src": "313:103:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 553, + "src": "66:352:1", + "usedErrors": [] + } + ], + "src": "32:387:1" + }, + "compiler": { + "name": "solc", + "version": "0.8.13+commit.abaa5c0e.Emscripten.clang" + }, + "networks": { + "3": { + "events": {}, + "links": {}, + "address": "0xCf1447E03Bec1A2403CC07b86773B1643919779b", + "transactionHash": "0xb8f790fa63d78fee1975dd191bddb5991a54eb2290bc71d790dec44d777ecfb7" + }, + "5777": { + "events": {}, + "links": {}, + "address": "0x55B85361AC7a324712F9F195859CCA45CE393262", + "transactionHash": "0xb4841978ab15a9d7a8bc47c12a22997649c2f6ef90b883987415a2224ff6e0af" + } + }, + "schemaVersion": "3.4.7", + "updatedAt": "2022-04-13T20:54:09.408Z", + "networkType": "ethereum", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/contracts/ETHpool.sol b/contracts/ETHpool.sol new file mode 100644 index 00000000..b29ef273 --- /dev/null +++ b/contracts/ETHpool.sol @@ -0,0 +1,206 @@ +//SPDX-License-Identifier: GPL-3.0 + +pragma solidity >=0.8.0 <0.9.0; +// >0.8 to avoid use of SafeMath functions +//But, if you want it... +//import "github.com/OpenZeppelin/zeppelin-solidity/contracts/math/SafeMath.sol"; +//using SafeMath for uint; // +//Better use Pausable Library, but it's only for fun + +/* +Summary +ETHPool provides a service where people can deposit ETH and they will receive weekly rewards. +Users must be able to take out their deposits along with their portion of rewards at any time. +New rewards are deposited manually into the pool by the ETHPool team each week using a contract function. + +Requirements +Only the team can deposit rewards. +Deposited rewards go to the pool of users, not to individual users. +Users should be able to withdraw their deposits along with their share of rewards considering the time when they deposited. +Example: + +Let say we have user A and B and team T. + +A deposits 100, and B deposits 300 for a total of 400 in the pool. +Now A has 25% of the pool and B has 75%. +When T deposits 200 rewards, A should be able to withdraw 150 and B 450. + +What if the following happens? +A deposits then T deposits then B deposits then A withdraws and finally B withdraws. +A should get their deposit + all the rewards. +B should only get their deposit because rewards were sent to the pool before they participated. +*/ + +/* + How it works? + First of all, we need to understand that the reward mechanism cannot be automatic. (No FOR or WHILE allowed!) + So, the stakeholders by themselves need to calculate their own reward (Don't worry, a function will do for us) + + Because the staking cannot be negative, we will save the accumulation of rewards proportional to the pool at the time of deposit. + For each stakeholder, we will save the composition of the pool at the time of staking. + To calculate the reward, we will substract the sum of rewards at the current time minus the composition of the pool at the time of staking for each user. + This is the explanation of why cannot be automatic at the time of deposit rewards. + + Some assumptions has been taken: + - Users withdrawn all of the staking and rewards. No partial withdraw allowed (Well, in fact, can be a full withdraw with a new deposit of the diff) + - Users cannot add funds to their staking (As above, we can consider a full withdraw, and a new staking) + - Some constants will be multiplied for an arbitrary big constant (10^18), to reduce rounding errors in division. + - Can be optimized for gas consumption. But for this challenge and for educational purposes, we can take the risk. And testnet is "free". + - Bugs? Everywhere. Not ready for production or resale. + + Credits: https://explorer.callisto.network/address/0xE2E4Cf144F4365AAa023da04918A64072C284201/contracts + (Thanks Erik!) +*/ + +contract ETHpool { + string public constant name = "ETHpool"; + enum State {Running, Paused, Ended } //staking can be done only if it state is running. + uint constant ROUNDING_CONSTANT = 10e18; //To minimize rounding errors at divisions + + struct TeamMember { //there are no specifications for TEAM, so, I understand that can be a lot of people. + string _name; //It's not necessary + bool _role; // True for active Team Members + } + + struct Stakeholder { + uint _currentBalance; + uint _compositionAtStartStaking; + uint _timeStaking; + } + + struct Pool { + uint poolBalance; + uint rewardsBalance; + uint lastRewardMultiplied; + uint rewardsCount; + uint lastRewardTime; + State status; + } + + mapping( address => Stakeholder) public UserList; + mapping( address => TeamMember) public Team; + Pool public poolStatus; + + //Some events to get data outside of the blockchain + event StakeEvent(address indexed _from, uint _value); + event WithdrawEvent(address indexed _to, uint _value); + event DepositRewardsEvent(uint _poolBalance, uint _rewards); + + + + constructor(){ + Team[msg.sender]._role = true; // Team member role assigned. + poolStatus.status = State.Running; + poolStatus.poolBalance = 0; // Do not transfer at construction time! + poolStatus.rewardsBalance = 0; // Do not transfer at construction time + poolStatus.lastRewardMultiplied = 0; + poolStatus.rewardsCount = 0; + } + + + // The main functions: Stake() , DepositRewards() , Withdraw() + + // DepositRewards: The team can call this function to deposit rewards to the pool. + // It will update the last reward of the pool, as rewards*ROUNDING_CONSTANT/PoolBalance + function DepositRewards() external payable onlyTeam notPaused notEnded returns(uint poolbalance) { + require( msg.value > 0, "Rewards must be greater than 0." ); + if( poolStatus.poolBalance != 0) { + poolStatus.lastRewardTime = block.timestamp; + poolStatus.lastRewardMultiplied += (msg.value * ROUNDING_CONSTANT) / poolStatus.poolBalance; + poolStatus.rewardsBalance += msg.value; + poolStatus.rewardsCount += 1; + } + else{ + revert("Pool is empty!"); + } + emit DepositRewardsEvent(poolStatus.poolBalance, poolStatus.rewardsBalance); + return poolStatus.poolBalance; + } + + // Stake: The users can call "Stake" to stake some ETH (or your network coin of value) + // All network users can perform this function, to become "USERS" + // TODO: We need to check if the user already exists, and **need to perform first a withdrawal next to a new deposit**. + // In V2, it will be an automatic claim. + + function Stake() external notPaused notEnded payable { + require(msg.value > 0, "Stake must be greater than 0."); + if( UserList[msg.sender]._currentBalance == 0 ) { //first staking + UserList[msg.sender]._currentBalance = msg.value; + UserList[msg.sender]._compositionAtStartStaking = poolStatus.lastRewardMultiplied; + UserList[msg.sender]._timeStaking = block.timestamp; + poolStatus.poolBalance += msg.value; + } + else { //User add more funds to their stake + uint newStaking = computeRewards()+msg.value; //Add old rewards plus new funds + UserList[msg.sender]._currentBalance += newStaking; + UserList[msg.sender]._compositionAtStartStaking = poolStatus.lastRewardMultiplied; //compute from now + UserList[msg.sender]._timeStaking = block.timestamp; + poolStatus.poolBalance += newStaking; //do not forget old funds! + } + emit StakeEvent(msg.sender, UserList[msg.sender]._currentBalance); + } + + // Withdraw: Allows users to withdraw their deposits and rewards proportional at the time being. + // FIXME: At now, only allows full withdrawals. + function Withdraw() external onlyUsers notPaused returns(uint sent){ + uint balanceFromPool = UserList[msg.sender]._currentBalance; //deposit + uint balanceFromRewards = computeRewards(); // rewards + uint allowedToWithdraw = balanceFromPool+balanceFromRewards ; + poolStatus.poolBalance -= balanceFromPool; // From pool + poolStatus.rewardsBalance -= balanceFromRewards; // From rewards + UserList[msg.sender]._currentBalance = 0; + + // Did you reentrant? (yes) what did it cost? (everything) + if (payable(msg.sender).send(allowedToWithdraw)) { + delete UserList[msg.sender]; + emit WithdrawEvent(msg.sender,allowedToWithdraw); + return allowedToWithdraw; + } else { + UserList[msg.sender]._currentBalance = balanceFromPool; + return 0; + } + } + + // Viewer functions: Allows users and team to see some computations. + function computeRewards() public view onlyUsers returns(uint withdrawable){ + return (UserList[msg.sender]._currentBalance * ( poolStatus.lastRewardMultiplied - UserList[msg.sender]._compositionAtStartStaking)) / ROUNDING_CONSTANT ; + } + + //Pool Administration functions + function pausePool() external onlyTeam { //If something went wrong, and we need time to proceed. + poolStatus.status = State.Paused; + } + + function endPool() external onlyTeam { + poolStatus.status = State.Ended; //If the pool dies. Only allow users to withdraw their funds. + } + + function resumePool() external onlyTeam { + poolStatus.status = State.Running; //Everything is up and running. + } + + function modifyTeam(address teamAddress , bool role) external onlyTeam { + Team[teamAddress]._role = role; + } + + //Modifiers section + modifier onlyUsers() { + require( UserList[msg.sender]._currentBalance > 0 , "Only stakeholders can use this function."); + _; + } + + modifier onlyTeam() { + require(Team[msg.sender]._role == true, "Only the Team can call this function."); + _; + } + + modifier notPaused() { + require( poolStatus.status != State.Paused, "ETHpool is paused. This operation is not allowed."); + _; + } + + modifier notEnded() { + require( poolStatus.status != State.Ended, "ETHpool is ended. Only withdrawals allowed."); + _; + } +} \ No newline at end of file diff --git a/contracts/Migrations.sol b/contracts/Migrations.sol new file mode 100644 index 00000000..9aac9750 --- /dev/null +++ b/contracts/Migrations.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.4.22 <0.9.0; + +contract Migrations { + address public owner = msg.sender; + uint public last_completed_migration; + + modifier restricted() { + require( + msg.sender == owner, + "This function is restricted to the contract's owner" + ); + _; + } + + function setCompleted(uint completed) public restricted { + last_completed_migration = completed; + } +} diff --git a/migrations/1644784659_deploy_ethpool.js b/migrations/1644784659_deploy_ethpool.js new file mode 100644 index 00000000..382fe292 --- /dev/null +++ b/migrations/1644784659_deploy_ethpool.js @@ -0,0 +1,12 @@ +const ETHpool = artifacts.require('ETHpool'); + +module.exports = function (deployer, network, accounts) { + // Use deployer to state migration tasks. + console.log(accounts) + if (network == 'ropsten' || network == 'rinkeby') { + deployer.deploy(ETHpool, { from: accounts[1] }); + } + else { + deployer.deploy(ETHpool); + } +}; \ No newline at end of file diff --git a/migrations/1_initial_migration.js b/migrations/1_initial_migration.js new file mode 100644 index 00000000..a9d04fc7 --- /dev/null +++ b/migrations/1_initial_migration.js @@ -0,0 +1,11 @@ +const Migrations = artifacts.require("Migrations"); + +module.exports = function (deployer, network, accounts) { + console.log(accounts) + if (network == 'ropsten' || network == 'rinkeby') { + deployer.deploy(Migrations, { from: accounts[1] }); + } + else { + deployer.deploy(Migrations); + } +}; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..dcc34502 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5210 @@ +{ + "name": "exactly-private", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "@truffle/hdwallet-provider": "^2.0.5", + "truffle-assertions": "^0.9.2" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", + "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.9", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.9", + "@babel/parser": "^7.17.9", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "peer": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/core/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "peer": true + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", + "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", + "dependencies": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "peer": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "peer": true, + "dependencies": { + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", + "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", + "peer": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", + "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", + "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", + "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/runtime": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", + "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", + "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.9", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.9", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ethereumjs/common": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.3.tgz", + "integrity": "sha512-mQwPucDL7FDYIg9XQ8DL31CnIYZwGhU5hyOO5E+BMmT71G0+RHvIT5rIkLBirJEKxV6+Rcf9aEIY0kXInxUWpQ==", + "dependencies": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.4" + } + }, + "node_modules/@ethereumjs/common/node_modules/@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@ethereumjs/common/node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "node_modules/@ethereumjs/common/node_modules/ethereumjs-util": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", + "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==", + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@ethereumjs/tx": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.1.tgz", + "integrity": "sha512-xzDrTiu4sqZXUcaBxJ4n4W5FrppwxLxZB4ZDGVLtxSQR4lVuOnFR6RcUHdg1mpUhAPVrmnzLJpxaeXnPxIyhWA==", + "dependencies": { + "@ethereumjs/common": "^2.6.3", + "ethereumjs-util": "^7.1.4" + } + }, + "node_modules/@ethereumjs/tx/node_modules/@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@ethereumjs/tx/node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "node_modules/@ethereumjs/tx/node_modules/ethereumjs-util": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", + "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==", + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "peer": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", + "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@metamask/safe-event-emitter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz", + "integrity": "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==" + }, + "node_modules/@truffle/hdwallet-provider": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-2.0.5.tgz", + "integrity": "sha512-aF0tadToEU31w33mhUYK7oV8GGuyID2Ov/yx1pueTKcMhOAJYfqEMTE96qq/GNQOkrsmi7blnGdjCSzuCUCb7w==", + "dependencies": { + "@ethereumjs/common": "^2.4.0", + "@ethereumjs/tx": "^3.3.0", + "eth-sig-util": "^3.0.1", + "ethereum-cryptography": "^0.1.3", + "ethereum-protocol": "^1.0.1", + "ethereumjs-util": "^6.1.0", + "ethereumjs-wallet": "^1.0.1", + "web3-provider-engine": "16.0.3" + } + }, + "node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "node_modules/@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/abstract-leveldown": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", + "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-eventemitter": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", + "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", + "dependencies": { + "async": "^2.4.0" + } + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "node_modules/async-mutex": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.2.6.tgz", + "integrity": "sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "dependencies": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/backoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", + "integrity": "sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=", + "dependencies": { + "precond": "0.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" + }, + "node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserslist": { + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", + "escalade": "^3.1.1", + "node-releases": "^2.0.2", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "bin": { + "btoa": "bin/btoa.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001328", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001328.tgz", + "integrity": "sha512-Ue55jHkR/s4r00FLNiX+hGMMuwml/QGqqzVeMQ5thUewznU2EdULFvI3JR7JJid6OrjJNfFvHY2G2dIjmRaDDQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/checkpoint-store": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", + "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=", + "dependencies": { + "functional-red-black-tree": "^1.0.1" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/convert-source-map/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "peer": true + }, + "node_modules/core-js-compat": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", + "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", + "dependencies": { + "browserslist": "^4.19.1", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-fetch": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz", + "integrity": "sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==", + "dependencies": { + "node-fetch": "^2.6.7", + "whatwg-fetch": "^2.0.4" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deferred-leveldown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", + "dependencies": { + "abstract-leveldown": "~2.6.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.107", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.107.tgz", + "integrity": "sha512-Huen6taaVrUrSy8o7mGStByba8PfOWWluHNxSHGBrCgEdFVLtvdQDBr9LBCF9Uci8SYxh28QNNMO0oC17wbGAg==" + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eth-block-tracker": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", + "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", + "dependencies": { + "@babel/plugin-transform-runtime": "^7.5.5", + "@babel/runtime": "^7.5.5", + "eth-query": "^2.1.0", + "json-rpc-random-id": "^1.0.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "node_modules/eth-block-tracker/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "engines": { + "node": ">=4" + } + }, + "node_modules/eth-json-rpc-filters": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz", + "integrity": "sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw==", + "dependencies": { + "@metamask/safe-event-emitter": "^2.0.0", + "async-mutex": "^0.2.6", + "eth-json-rpc-middleware": "^6.0.0", + "eth-query": "^2.1.2", + "json-rpc-engine": "^6.1.0", + "pify": "^5.0.0" + } + }, + "node_modules/eth-json-rpc-filters/node_modules/pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eth-json-rpc-infura": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-5.1.0.tgz", + "integrity": "sha512-THzLye3PHUSGn1EXMhg6WTLW9uim7LQZKeKaeYsS9+wOBcamRiCQVGHa6D2/4P0oS0vSaxsBnU/J6qvn0MPdow==", + "dependencies": { + "eth-json-rpc-middleware": "^6.0.0", + "eth-rpc-errors": "^3.0.0", + "json-rpc-engine": "^5.3.0", + "node-fetch": "^2.6.0" + } + }, + "node_modules/eth-json-rpc-infura/node_modules/json-rpc-engine": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", + "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", + "dependencies": { + "eth-rpc-errors": "^3.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "node_modules/eth-json-rpc-middleware": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-6.0.0.tgz", + "integrity": "sha512-qqBfLU2Uq1Ou15Wox1s+NX05S9OcAEL4JZ04VZox2NS0U+RtCMjSxzXhLFWekdShUPZ+P8ax3zCO2xcPrp6XJQ==", + "dependencies": { + "btoa": "^1.2.1", + "clone": "^2.1.1", + "eth-query": "^2.1.2", + "eth-rpc-errors": "^3.0.0", + "eth-sig-util": "^1.4.2", + "ethereumjs-util": "^5.1.2", + "json-rpc-engine": "^5.3.0", + "json-stable-stringify": "^1.0.1", + "node-fetch": "^2.6.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "node_modules/eth-json-rpc-middleware/node_modules/eth-sig-util": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", + "integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=", + "deprecated": "Deprecated in favor of '@metamask/eth-sig-util'", + "dependencies": { + "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "ethereumjs-util": "^5.1.1" + } + }, + "node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/eth-json-rpc-middleware/node_modules/json-rpc-engine": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", + "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", + "dependencies": { + "eth-rpc-errors": "^3.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "node_modules/eth-json-rpc-middleware/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "engines": { + "node": ">=4" + } + }, + "node_modules/eth-query": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", + "integrity": "sha1-1nQdkAAQa1FRDHLbktY2VFam2l4=", + "dependencies": { + "json-rpc-random-id": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "node_modules/eth-rpc-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", + "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==", + "dependencies": { + "fast-safe-stringify": "^2.0.6" + } + }, + "node_modules/eth-sig-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-3.0.1.tgz", + "integrity": "sha512-0Us50HiGGvZgjtWTyAI/+qTzYPMLy5Q451D0Xy68bxq1QMWdoOddDwGvsqcFT27uohKgalM9z/yxplyt+mY2iQ==", + "deprecated": "Deprecated in favor of '@metamask/eth-sig-util'", + "dependencies": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^5.1.1", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.0" + } + }, + "node_modules/eth-sig-util/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/eth-sig-util/node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/ethereum-common": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", + "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==" + }, + "node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/ethereum-cryptography/node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "node_modules/ethereum-protocol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz", + "integrity": "sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg==" + }, + "node_modules/ethereumjs-abi": { + "version": "0.6.8", + "resolved": "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0", + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ethereumjs-account": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", + "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", + "dependencies": { + "ethereumjs-util": "^5.0.0", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereumjs-account/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereumjs-block": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", + "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", + "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", + "dependencies": { + "async": "^2.0.1", + "ethereum-common": "0.2.0", + "ethereumjs-tx": "^1.2.2", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + } + }, + "node_modules/ethereumjs-block/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereumjs-common": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", + "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==", + "deprecated": "New package name format for new versions: @ethereumjs/common. Please update." + }, + "node_modules/ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", + "dependencies": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "node_modules/ethereumjs-tx/node_modules/ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" + }, + "node_modules/ethereumjs-tx/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/ethereumjs-vm": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", + "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", + "deprecated": "New package name format for new versions: @ethereumjs/vm. Please update.", + "dependencies": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "ethereumjs-account": "^2.0.3", + "ethereumjs-block": "~2.2.0", + "ethereumjs-common": "^1.1.0", + "ethereumjs-util": "^6.0.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", + "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", + "dependencies": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + } + }, + "node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", + "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", + "dependencies": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ethereumjs-wallet": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-1.0.2.tgz", + "integrity": "sha512-CCWV4RESJgRdHIvFciVQFnCHfqyhXWchTPlkfp28Qc53ufs+doi5I/cV2+xeK9+qEo25XCWfP9MiL+WEPAZfdA==", + "dependencies": { + "aes-js": "^3.1.2", + "bs58check": "^2.1.2", + "ethereum-cryptography": "^0.1.3", + "ethereumjs-util": "^7.1.2", + "randombytes": "^2.1.0", + "scrypt-js": "^3.0.1", + "utf8": "^3.0.0", + "uuid": "^8.3.2" + } + }, + "node_modules/ethereumjs-wallet/node_modules/@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ethereumjs-wallet/node_modules/aes-js": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", + "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==" + }, + "node_modules/ethereumjs-wallet/node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "node_modules/ethereumjs-wallet/node_modules/ethereumjs-util": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", + "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==", + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ethereumjs-wallet/node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "node_modules/ethereumjs-wallet/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "dependencies": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fake-merkle-patricia-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", + "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", + "dependencies": { + "checkpoint-store": "^1.1.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/immediate": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", + "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", + "integrity": "sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "node_modules/is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-rpc-engine": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz", + "integrity": "sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==", + "dependencies": { + "@metamask/safe-event-emitter": "^2.0.0", + "eth-rpc-errors": "^4.0.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/json-rpc-engine/node_modules/eth-rpc-errors": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz", + "integrity": "sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==", + "dependencies": { + "fast-safe-stringify": "^2.0.6" + } + }, + "node_modules/json-rpc-random-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", + "integrity": "sha1-uknZat7RRE27jaPSA3SKy7zeyMg=" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dependencies": { + "jsonify": "~0.0.0" + } + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "engines": { + "node": "*" + } + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/keccak": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", + "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/keccak/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/level-codec": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" + }, + "node_modules/level-errors": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", + "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", + "dependencies": { + "errno": "~0.1.1" + } + }, + "node_modules/level-iterator-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", + "dependencies": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + } + }, + "node_modules/level-iterator-stream/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "node_modules/level-iterator-stream/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/level-iterator-stream/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "node_modules/level-ws": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", + "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", + "dependencies": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + } + }, + "node_modules/level-ws/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "node_modules/level-ws/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/level-ws/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "node_modules/level-ws/node_modules/xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dependencies": { + "object-keys": "~0.4.0" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/levelup": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", + "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", + "dependencies": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + } + }, + "node_modules/levelup/node_modules/semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, + "node_modules/ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/memdown": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", + "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", + "dependencies": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + } + }, + "node_modules/memdown/node_modules/abstract-leveldown": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", + "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/memdown/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/merkle-patricia-tree": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "dependencies": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + } + }, + "node_modules/merkle-patricia-tree/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-gyp-build": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", + "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-releases": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", + "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==" + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, + "node_modules/object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" + }, + "node_modules/parse-headers": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/precond": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", + "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise-to-callback": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", + "integrity": "sha1-XSp0kBC/tn2WNZj805YHRqaP7vc=", + "dependencies": { + "is-fn": "^1.0.0", + "set-immediate-shim": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "dependencies": { + "bn.js": "^5.2.0" + }, + "bin": { + "rlp": "bin/rlp" + } + }, + "node_modules/rlp/node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "node_modules/rustbn.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", + "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-event-emitter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", + "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", + "deprecated": "Renamed to @metamask/safe-event-emitter", + "dependencies": { + "events": "^3.0.0" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/semaphore": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", + "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/semver": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", + "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "dependencies": { + "is-hex-prefixed": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "node_modules/truffle-assertions": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/truffle-assertions/-/truffle-assertions-0.9.2.tgz", + "integrity": "sha512-9g2RhaxU2F8DeWhqoGQvL/bV8QVoSnQ6PY+ZPvYRP5eF7+/8LExb4mjLx/FeliLTjc3Tv1SABG05Gu5qQ/ErmA==", + "dependencies": { + "assertion-error": "^1.1.0", + "lodash.isequal": "^4.5.0" + } + }, + "node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "node_modules/tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/web3-provider-engine": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-16.0.3.tgz", + "integrity": "sha512-Q3bKhGqLfMTdLvkd4TtkGYJHcoVQ82D1l8jTIwwuJp/sAp7VHnRYb9YJ14SW/69VMWoOhSpPLZV2tWb9V0WJoA==", + "dependencies": { + "@ethereumjs/tx": "^3.3.0", + "async": "^2.5.0", + "backoff": "^2.5.0", + "clone": "^2.0.0", + "cross-fetch": "^2.1.0", + "eth-block-tracker": "^4.4.2", + "eth-json-rpc-filters": "^4.2.1", + "eth-json-rpc-infura": "^5.1.0", + "eth-json-rpc-middleware": "^6.0.0", + "eth-rpc-errors": "^3.0.0", + "eth-sig-util": "^1.4.2", + "ethereumjs-block": "^1.2.2", + "ethereumjs-util": "^5.1.5", + "ethereumjs-vm": "^2.3.4", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "readable-stream": "^2.2.9", + "request": "^2.85.0", + "semaphore": "^1.0.3", + "ws": "^5.1.1", + "xhr": "^2.2.0", + "xtend": "^4.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/web3-provider-engine/node_modules/eth-sig-util": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", + "integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=", + "deprecated": "Deprecated in favor of '@metamask/eth-sig-util'", + "dependencies": { + "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "ethereumjs-util": "^5.1.1" + } + }, + "node_modules/web3-provider-engine/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/web3-provider-engine/node_modules/ws": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", + "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/whatwg-fetch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "dependencies": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "peer": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.0" + } + }, + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "requires": { + "@babel/highlight": "^7.16.7" + } + }, + "@babel/compat-data": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==" + }, + "@babel/core": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", + "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", + "peer": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.9", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.9", + "@babel/parser": "^7.17.9", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "peer": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "peer": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true + } + } + }, + "@babel/generator": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", + "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", + "requires": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "requires": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "peer": true, + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + }, + "@babel/helper-simple-access": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "peer": true, + "requires": { + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" + }, + "@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" + }, + "@babel/helpers": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", + "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", + "peer": true, + "requires": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0" + } + }, + "@babel/highlight": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", + "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", + "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==" + }, + "@babel/plugin-transform-runtime": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", + "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/runtime": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", + "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/traverse": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", + "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.9", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.9", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "@ethereumjs/common": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.3.tgz", + "integrity": "sha512-mQwPucDL7FDYIg9XQ8DL31CnIYZwGhU5hyOO5E+BMmT71G0+RHvIT5rIkLBirJEKxV6+Rcf9aEIY0kXInxUWpQ==", + "requires": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.4" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "requires": { + "@types/node": "*" + } + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "ethereumjs-util": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", + "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==", + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + } + } + } + }, + "@ethereumjs/tx": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.1.tgz", + "integrity": "sha512-xzDrTiu4sqZXUcaBxJ4n4W5FrppwxLxZB4ZDGVLtxSQR4lVuOnFR6RcUHdg1mpUhAPVrmnzLJpxaeXnPxIyhWA==", + "requires": { + "@ethereumjs/common": "^2.6.3", + "ethereumjs-util": "^7.1.4" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "requires": { + "@types/node": "*" + } + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "ethereumjs-util": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", + "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==", + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + } + } + } + }, + "@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "peer": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "peer": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", + "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "peer": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@metamask/safe-event-emitter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz", + "integrity": "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==" + }, + "@truffle/hdwallet-provider": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-2.0.5.tgz", + "integrity": "sha512-aF0tadToEU31w33mhUYK7oV8GGuyID2Ov/yx1pueTKcMhOAJYfqEMTE96qq/GNQOkrsmi7blnGdjCSzuCUCb7w==", + "requires": { + "@ethereumjs/common": "^2.4.0", + "@ethereumjs/tx": "^3.3.0", + "eth-sig-util": "^3.0.1", + "ethereum-cryptography": "^0.1.3", + "ethereum-protocol": "^1.0.1", + "ethereumjs-util": "^6.1.0", + "ethereumjs-wallet": "^1.0.1", + "web3-provider-engine": "16.0.3" + } + }, + "@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "requires": { + "@types/node": "*" + } + }, + "abstract-leveldown": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", + "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", + "requires": { + "xtend": "~4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + }, + "async-eventemitter": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", + "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", + "requires": { + "async": "^2.4.0" + } + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "async-mutex": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.2.6.tgz", + "integrity": "sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==", + "requires": { + "tslib": "^2.0.0" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + } + }, + "backoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", + "integrity": "sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=", + "requires": { + "precond": "0.2" + } + }, + "base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserslist": { + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "requires": { + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", + "escalade": "^3.1.1", + "node-releases": "^2.0.2", + "picocolors": "^1.0.0" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "caniuse-lite": { + "version": "1.0.30001328", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001328.tgz", + "integrity": "sha512-Ue55jHkR/s4r00FLNiX+hGMMuwml/QGqqzVeMQ5thUewznU2EdULFvI3JR7JJid6OrjJNfFvHY2G2dIjmRaDDQ==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "checkpoint-store": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", + "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=", + "requires": { + "functional-red-black-tree": "^1.0.1" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "peer": true, + "requires": { + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "peer": true + } + } + }, + "core-js-compat": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", + "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", + "requires": { + "browserslist": "^4.19.1", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + } + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-fetch": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz", + "integrity": "sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==", + "requires": { + "node-fetch": "^2.6.7", + "whatwg-fetch": "^2.0.4" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "deferred-leveldown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", + "requires": { + "abstract-leveldown": "~2.6.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "electron-to-chromium": { + "version": "1.4.107", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.107.tgz", + "integrity": "sha512-Huen6taaVrUrSy8o7mGStByba8PfOWWluHNxSHGBrCgEdFVLtvdQDBr9LBCF9Uci8SYxh28QNNMO0oC17wbGAg==" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "requires": { + "prr": "~1.0.1" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "eth-block-tracker": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", + "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", + "requires": { + "@babel/plugin-transform-runtime": "^7.5.5", + "@babel/runtime": "^7.5.5", + "eth-query": "^2.1.0", + "json-rpc-random-id": "^1.0.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "eth-json-rpc-filters": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz", + "integrity": "sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw==", + "requires": { + "@metamask/safe-event-emitter": "^2.0.0", + "async-mutex": "^0.2.6", + "eth-json-rpc-middleware": "^6.0.0", + "eth-query": "^2.1.2", + "json-rpc-engine": "^6.1.0", + "pify": "^5.0.0" + }, + "dependencies": { + "pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==" + } + } + }, + "eth-json-rpc-infura": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-5.1.0.tgz", + "integrity": "sha512-THzLye3PHUSGn1EXMhg6WTLW9uim7LQZKeKaeYsS9+wOBcamRiCQVGHa6D2/4P0oS0vSaxsBnU/J6qvn0MPdow==", + "requires": { + "eth-json-rpc-middleware": "^6.0.0", + "eth-rpc-errors": "^3.0.0", + "json-rpc-engine": "^5.3.0", + "node-fetch": "^2.6.0" + }, + "dependencies": { + "json-rpc-engine": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", + "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", + "requires": { + "eth-rpc-errors": "^3.0.0", + "safe-event-emitter": "^1.0.1" + } + } + } + }, + "eth-json-rpc-middleware": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-6.0.0.tgz", + "integrity": "sha512-qqBfLU2Uq1Ou15Wox1s+NX05S9OcAEL4JZ04VZox2NS0U+RtCMjSxzXhLFWekdShUPZ+P8ax3zCO2xcPrp6XJQ==", + "requires": { + "btoa": "^1.2.1", + "clone": "^2.1.1", + "eth-query": "^2.1.2", + "eth-rpc-errors": "^3.0.0", + "eth-sig-util": "^1.4.2", + "ethereumjs-util": "^5.1.2", + "json-rpc-engine": "^5.3.0", + "json-stable-stringify": "^1.0.1", + "node-fetch": "^2.6.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" + }, + "dependencies": { + "eth-sig-util": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", + "integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=", + "requires": { + "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "ethereumjs-util": "^5.1.1" + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "json-rpc-engine": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", + "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", + "requires": { + "eth-rpc-errors": "^3.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "eth-query": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", + "integrity": "sha1-1nQdkAAQa1FRDHLbktY2VFam2l4=", + "requires": { + "json-rpc-random-id": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "eth-rpc-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", + "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==", + "requires": { + "fast-safe-stringify": "^2.0.6" + } + }, + "eth-sig-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-3.0.1.tgz", + "integrity": "sha512-0Us50HiGGvZgjtWTyAI/+qTzYPMLy5Q451D0Xy68bxq1QMWdoOddDwGvsqcFT27uohKgalM9z/yxplyt+mY2iQ==", + "requires": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^5.1.1", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.0" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + } + } + }, + "ethereum-common": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", + "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==" + }, + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + }, + "dependencies": { + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + } + } + }, + "ethereum-protocol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz", + "integrity": "sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg==" + }, + "ethereumjs-abi": { + "version": "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0", + "from": "ethereumjs-abi@^0.6.8", + "requires": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + } + }, + "ethereumjs-account": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", + "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", + "requires": { + "ethereumjs-util": "^5.0.0", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + }, + "ethereumjs-block": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", + "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", + "requires": { + "async": "^2.0.1", + "ethereum-common": "0.2.0", + "ethereumjs-tx": "^1.2.2", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + }, + "ethereumjs-common": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", + "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==" + }, + "ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + }, + "dependencies": { + "ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + }, + "ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "ethereumjs-vm": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", + "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", + "requires": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "ethereumjs-account": "^2.0.3", + "ethereumjs-block": "~2.2.0", + "ethereumjs-common": "^1.1.0", + "ethereumjs-util": "^6.0.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1" + }, + "dependencies": { + "ethereumjs-block": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", + "requires": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + }, + "ethereumjs-tx": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", + "requires": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" + } + } + } + }, + "ethereumjs-wallet": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-1.0.2.tgz", + "integrity": "sha512-CCWV4RESJgRdHIvFciVQFnCHfqyhXWchTPlkfp28Qc53ufs+doi5I/cV2+xeK9+qEo25XCWfP9MiL+WEPAZfdA==", + "requires": { + "aes-js": "^3.1.2", + "bs58check": "^2.1.2", + "ethereum-cryptography": "^0.1.3", + "ethereumjs-util": "^7.1.2", + "randombytes": "^2.1.0", + "scrypt-js": "^3.0.1", + "utf8": "^3.0.0", + "uuid": "^8.3.2" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "requires": { + "@types/node": "*" + } + }, + "aes-js": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", + "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==" + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "ethereumjs-util": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", + "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==", + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + } + }, + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + } + } + }, + "ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "requires": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + } + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fake-merkle-patricia-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", + "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", + "requires": { + "checkpoint-store": "^1.1.0" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "peer": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "immediate": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", + "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "requires": { + "has": "^1.0.3" + } + }, + "is-fn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", + "integrity": "sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=" + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-rpc-engine": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz", + "integrity": "sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==", + "requires": { + "@metamask/safe-event-emitter": "^2.0.0", + "eth-rpc-errors": "^4.0.2" + }, + "dependencies": { + "eth-rpc-errors": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz", + "integrity": "sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==", + "requires": { + "fast-safe-stringify": "^2.0.6" + } + } + } + }, + "json-rpc-random-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", + "integrity": "sha1-uknZat7RRE27jaPSA3SKy7zeyMg=" + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "peer": true + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "keccak": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", + "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "level-codec": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" + }, + "level-errors": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", + "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", + "requires": { + "errno": "~0.1.1" + } + }, + "level-iterator-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", + "requires": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "level-ws": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", + "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", + "requires": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "requires": { + "object-keys": "~0.4.0" + } + } + } + }, + "levelup": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", + "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", + "requires": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + }, + "dependencies": { + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" + } + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, + "ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "memdown": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", + "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", + "requires": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "abstract-leveldown": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", + "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "requires": { + "xtend": "~4.0.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "merkle-patricia-tree": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "requires": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "requires": { + "dom-walk": "^0.1.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-gyp-build": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", + "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==" + }, + "node-releases": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", + "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" + }, + "parse-headers": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "precond": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", + "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise-to-callback": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", + "integrity": "sha1-XSp0kBC/tn2WNZj805YHRqaP7vc=", + "requires": { + "is-fn": "^1.0.0", + "set-immediate-shim": "^1.0.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" + } + } + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "requires": { + "bn.js": "^5.2.0" + }, + "dependencies": { + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + } + } + }, + "rustbn.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", + "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==" + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safe-event-emitter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", + "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", + "requires": { + "events": "^3.0.0" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "requires": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "semaphore": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", + "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==" + }, + "semver": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", + "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==" + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "requires": { + "is-hex-prefixed": "1.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "truffle-assertions": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/truffle-assertions/-/truffle-assertions-0.9.2.tgz", + "integrity": "sha512-9g2RhaxU2F8DeWhqoGQvL/bV8QVoSnQ6PY+ZPvYRP5eF7+/8LExb4mjLx/FeliLTjc3Tv1SABG05Gu5qQ/ErmA==", + "requires": { + "assertion-error": "^1.1.0", + "lodash.isequal": "^4.5.0" + } + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + } + } + }, + "web3-provider-engine": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-16.0.3.tgz", + "integrity": "sha512-Q3bKhGqLfMTdLvkd4TtkGYJHcoVQ82D1l8jTIwwuJp/sAp7VHnRYb9YJ14SW/69VMWoOhSpPLZV2tWb9V0WJoA==", + "requires": { + "@ethereumjs/tx": "^3.3.0", + "async": "^2.5.0", + "backoff": "^2.5.0", + "clone": "^2.0.0", + "cross-fetch": "^2.1.0", + "eth-block-tracker": "^4.4.2", + "eth-json-rpc-filters": "^4.2.1", + "eth-json-rpc-infura": "^5.1.0", + "eth-json-rpc-middleware": "^6.0.0", + "eth-rpc-errors": "^3.0.0", + "eth-sig-util": "^1.4.2", + "ethereumjs-block": "^1.2.2", + "ethereumjs-util": "^5.1.5", + "ethereumjs-vm": "^2.3.4", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "readable-stream": "^2.2.9", + "request": "^2.85.0", + "semaphore": "^1.0.3", + "ws": "^5.1.1", + "xhr": "^2.2.0", + "xtend": "^4.0.1" + }, + "dependencies": { + "eth-sig-util": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", + "integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=", + "requires": { + "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "ethereumjs-util": "^5.1.1" + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "ws": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", + "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-fetch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "requires": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..b3a6f5d6 --- /dev/null +++ b/package.json @@ -0,0 +1,6 @@ +{ + "dependencies": { + "@truffle/hdwallet-provider": "^2.0.5", + "truffle-assertions": "^0.9.2" + } +} diff --git a/query_contract/README.md b/query_contract/README.md new file mode 100644 index 00000000..86a66016 --- /dev/null +++ b/query_contract/README.md @@ -0,0 +1,75 @@ +# exactly-private +Script to query "ETHPool" contract. + +# Smart Contract Challenge + + +#### Summary + +QueryEthPool will connect to Infura and query the ETHPool contract to know their status. +It will return data about the balance of the pool (total staked), of the rewards pool (total of rewards), the last index of pool composition, the count of rewards provided, the time of the last reward, and the status of the pool. + +#### Requirements + +- Python 3 +- File _../.secrets_ with the mnemonics of your test wallet (Please do not commit this file) +- File _../.infurakey_ with your Infura Project ID (Please do not commit this file) +- Web3.py installed +> pip install Web3 +> or +> pip install -r requirements.txt (it will install a lot of bloatware, you have been warned) + + +Example: + +> Exactly\exactly-private\query_contract> **py .\queryEthPool.py** +> +> Connected? **True** +> +> Balance of Wallet Test: 0.138237453946299695 ropstenETH +> +> Ahora vamos al contrato... +> +> **Pool Balance:** 0 +> +> **Rewards Balance:** 0 +> +> **Last Reward Multiplied:** 0 +> +> **Rewards count:** 0 +> +> **Last Reward Time:** 0 +> +> **Status:** 0 + + + +_Contract verified at: https://ropsten.etherscan.io/address/0x40985d7c0357e31332860ffdea279e23ec0d5fc3#code_ + +At the time being, numbers are 0 because some issues with Ropsten faucets. In local scenarios, it appears like the following output: + +> py .\queryEthPool.py +> +> Connected? True +> +> Balance of Wallet Test: 0 ropstenETH +> +> Ahora vamos al contrato... +> +> Pool Balance: 400 +> +> Rewards Balance: 200 +> +> Last Reward Multiplied: 5000000000000000000 +> +> Rewards count: 1 +> +> Last Reward Time: 1649883959 +> +> Status: 0 + +### Interact with the contract + +Create a script (or a Hardhat task) to query the total amount of ETH held in the contract. + +_You can use any library you prefer: Ethers.js, Web3.js, Web3.py, eth-brownie_ diff --git a/query_contract/contractAbi.json b/query_contract/contractAbi.json new file mode 100644 index 00000000..4e77ee27 --- /dev/null +++ b/query_contract/contractAbi.json @@ -0,0 +1,260 @@ +[ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_poolBalance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_rewards", + "type": "uint256" + } + ], + "name": "DepositRewardsEvent", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_from", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "name": "StakeEvent", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "name": "WithdrawEvent", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "Team", + "outputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "bool", + "name": "_role", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "UserList", + "outputs": [ + { + "internalType": "uint256", + "name": "_currentBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_compositionAtStartStaking", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_timeStaking", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "poolStatus", + "outputs": [ + { + "internalType": "uint256", + "name": "poolBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rewardsBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastRewardMultiplied", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rewardsCount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastRewardTime", + "type": "uint256" + }, + { + "internalType": "enum ETHpool.State", + "name": "status", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "DepositRewards", + "outputs": [ + { + "internalType": "uint256", + "name": "poolbalance", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function", + "payable": true + }, + { + "inputs": [], + "name": "Stake", + "outputs": [], + "stateMutability": "payable", + "type": "function", + "payable": true + }, + { + "inputs": [], + "name": "Withdraw", + "outputs": [ + { + "internalType": "uint256", + "name": "sent", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "computeRewards", + "outputs": [ + { + "internalType": "uint256", + "name": "withdrawable", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "pausePool", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "endPool", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumePool", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "teamAddress", + "type": "address" + }, + { + "internalType": "bool", + "name": "role", + "type": "bool" + } + ], + "name": "modifyTeam", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } +] \ No newline at end of file diff --git a/query_contract/queryEthPool.py b/query_contract/queryEthPool.py new file mode 100644 index 00000000..6579ce3c --- /dev/null +++ b/query_contract/queryEthPool.py @@ -0,0 +1,130 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +"""Script para testear Web3 for Python , invocar el contrato y ver el saldo""" + +__author__ = "Matías Araujo" +__copyright__ = "Copyright 2021, RLLabs LLC" +__credits__ = ["Erik", "El Barto"] +__license__ = "GPL" +__version__ = "0.0.1" +__maintainer__ = "Matías Araujo" +__email__ = ["matias.araujo@outlook.com"] +__status__ = "Development" + +# SOURCE: https://stackoverflow.com/questions/1523427/what-is-the-common-header-format-of-python-files + +#Imports: +from web3 import Web3 +from eth_account import Account +import requests +import sys +import logging +import json +import pprint + + +# Configs: +#logging.basicConfig(level=logging.DEBUG) + + +# Constantes +BE_VERBOSE = True +WALLET_MATI = "0xeC11B5Da844605b40c2e1f4201e9e4531648b582" +ETHEREUM_EXPLORER_URL = "https://ropsten.etherscan.io/api" +ETHEREUM_EXPLORER_API = "https://api-ropsten.etherscan.io/api" + +#FIXME: Está tomado prestado del explorer +CONTRACT_ADDRESS = "0x40985d7C0357e31332860FfdeA279e23Ec0d5fC3" #Esta es la dirección final +API_ENDPOINT = ETHEREUM_EXPLORER_API+"?module=contract&action=getabi&address="+str(CONTRACT_ADDRESS) +CONTRACT_ABI = "contractAbi.json" + +# Seed from file +mnemonic_file = open('..\.secrets', 'r') +mnemonic = mnemonic_file.read() +mnemonic_file.close() + +# Infura Key +infura_file = open('..\.infurakey', 'r') +infura_key = infura_file.read() +infura_file.close() + +INFURA_RPC_URL = "https://ropsten.infura.io/v3/"+infura_key + +#Local: +#INFURA_RPC_URL = "http://127.0.0.1:8545" +#CONTRACT_ADDRESS = "0xF86028676549f778d2b4EC618f9C69d4b24B9016" + +#Address: + +#GAS LIMITS: +GASLIMIT_TOKEN_TRANSFER=70000 + +#Globales para inicializar: + +w3= None + + +def connectToCallisto(): + CloW3 = Web3(Web3.HTTPProvider(INFURA_RPC_URL)) + print("Connected? {}".format(CloW3.isConnected())) + return CloW3 + +def loadContract(abi, contractAddress): + contractAbi = getABI(fromFile=abi) + contractInstance = w3.eth.contract( + address=contractAddress, + abi= contractAbi + ) + return contractInstance + +def getBalanceOfWalletInnovacion(CloW3): + print("Balance of Wallet Test: {} ropstenETH".format( + Web3.fromWei(CloW3.eth.get_balance(WALLET_MATI),'ether'))) + +def getBalanceOfPool( instance ): + balance = instance.functions.poolStatus().call() + return balance + +def checkAddress(addr): + return w3.isAddress(addr) + + +def getABI(fromFile=None): + if(fromFile is None): + r = requests.get(url = API_ENDPOINT) + response = r.json() + return response["result"] + else: + with open(fromFile) as f: + info_json = json.load(f) + return info_json + +def setupAccount(): + #acct = Account.privateKeyToAccount(PK) + acct = w3.eth.account.from_key(PK) + #acct = w3.eth.account.privateKeyToAccount(PK) + #w3.eth.default_account = acct + return acct + +w3 = connectToCallisto() + +if __name__ == "__main__": + getBalanceOfWalletInnovacion(w3) + print("Ahora vamos al contrato...") + contractInstance = loadContract(abi=CONTRACT_ABI,contractAddress=CONTRACT_ADDRESS) + + + balanceTokens = getBalanceOfPool(contractInstance) + poolBalance = balanceTokens[0] + rewardsBalance = balanceTokens[1] + lastRewardMultiplied = balanceTokens[2] + rewardsCount = balanceTokens[3] + lastRewardTime = balanceTokens[4] + status = balanceTokens[5] + print('Pool Balance: {}'.format(Web3.fromWei(poolBalance,'wei'))) + print('Rewards Balance: {}'.format(Web3.fromWei(rewardsBalance,'wei'))) + print('Last Reward Multiplied: {}'.format(Web3.fromWei(lastRewardMultiplied,'wei'))) + print('Rewards count: {}'.format(Web3.fromWei(rewardsCount,'wei'))) + print('Last Reward Time: {}'.format(Web3.fromWei(lastRewardTime,'wei'))) + print('Status: {}'.format(status)) \ No newline at end of file diff --git a/query_contract/requirements.txt b/query_contract/requirements.txt new file mode 100644 index 00000000..1caa52ab Binary files /dev/null and b/query_contract/requirements.txt differ diff --git a/test/e_t_hpool.js b/test/e_t_hpool.js new file mode 100644 index 00000000..687f4bf5 --- /dev/null +++ b/test/e_t_hpool.js @@ -0,0 +1,132 @@ +const ETHpool = artifacts.require("ETHpool"); +const truffleAssert = require('truffle-assertions'); + +const contractName = 'ETHpool' + +/* + * uncomment accounts to access the test accounts made available by the + * Ethereum client + * See docs: https://www.trufflesuite.com/docs/truffle/testing/writing-tests-in-javascript + */ + + +contract(contractName, function (accounts) { + it("Should return the list of accounts", async () => { + console.log(accounts); + }); + + let instance; + beforeEach('Should setup the contract instance', async () => { + instance = await ETHpool.deployed(); + }); + + it("Should return the name", async () => { + const value = await instance.name(); + assert.equal(value, contractName) + }); + + /* + it("should return change the name", async () => { + await instance.changeName('your name'); + const value = await instance.getName(); + + assert.equal(value, 'your name'); + }); + + it('should execute only by the owner', async () => { + await instance.changeName('modifier'); + const value = await instance.getName(); + + assert.equal(value, 'modifier'); + }) + */ + + it('Test case from Exactly Github: A->100, B->300 ,T->200 ... A->150, B->450' + , async () => { + + var accountA = accounts[1] + var accountB = accounts[2] + var accountT = accounts[0] + + //A -> 100 + const stakeA = 100 + const stakeFromAvalue = web3.utils.toWei('' + stakeA, "gwei") + const stakeFromA = await instance.Stake({ + 'from': accountA, + 'value': stakeFromAvalue + }); + truffleAssert.eventEmitted(stakeFromA, 'StakeEvent', (event) => { + return event._value == stakeFromAvalue + }) + const poolStatusA = await instance.poolStatus() + assert.equal(poolStatusA.poolBalance, stakeFromAvalue); + + + //B -> 300 + const stakeB = 300 + const stakeFromBvalue = web3.utils.toWei('' + stakeB, "gwei") + const stakeFromB = await instance.Stake({ + 'from': accountB, + 'value': stakeFromBvalue + }); + truffleAssert.eventEmitted(stakeFromB, 'StakeEvent', (event) => { + return event._value == stakeFromBvalue + }) + const poolStatusB = await instance.poolStatus() + assert.equal(poolStatusB.poolBalance, web3.utils.toWei('' + (stakeA + stakeB), "gwei"));//A+B + + //T -> 200 + const rewardT = 200 + const rewardFromTvalue = web3.utils.toWei('' + rewardT, "gwei") + const rewardFromT = await instance.DepositRewards({ + 'from': accountT, + 'value': rewardFromTvalue + }); + truffleAssert.eventEmitted(rewardFromT, 'DepositRewardsEvent', (event) => { + return event._rewards == rewardFromTvalue + }) + const poolStatusT = await instance.poolStatus() + assert.equal(poolStatusT.rewardsBalance, rewardFromTvalue); + + + //A <- 150 + const withdrawA = await instance.Withdraw({ + 'from': accountA + }); + truffleAssert.prettyPrintEmittedEvents(withdrawA) + truffleAssert.eventEmitted(withdrawA, 'WithdrawEvent', (event) => { + //console.log("Llegó a WithdrawEvent",web3.utils.toWei(''+(stakeA+rewardT*(stakeA/(stakeA+stakeB))), "gwei")) + //150000000000 150000000000 50000000000 + return event._value == web3.utils.toWei('' + (stakeA + rewardT * (stakeA / (stakeA + stakeB))), "gwei") + }) + + //B <- 450 + const withdrawB = await instance.Withdraw({ + 'from': accountB + }); + truffleAssert.prettyPrintEmittedEvents(withdrawB) + truffleAssert.eventEmitted(withdrawB, 'WithdrawEvent', (event) => { + //console.log("Llegó a WithdrawEvent",web3.utils.toWei(''+(stakeA+rewardT*(stakeA/(stakeA+stakeB))), "gwei")) + //150000000000 150000000000 50000000000 + return event._value == web3.utils.toWei('' + (stakeB + rewardT * (stakeB / (stakeA + stakeB))), "gwei") + }) + }); + + it('Should fail: pausePool called by not Team members', async () => { + await truffleAssert.reverts(instance.pausePool({ + 'from': accounts[1] + })); + }); + + it('Should fail: endPool called by not Team members', async () => { + await truffleAssert.reverts(instance.endPool({ + 'from': accounts[1] + })); + }); + + it('Should fail: resumePool called by not Team members', async () => { + await truffleAssert.reverts(instance.resumePool({ + 'from': accounts[1] + })); + }); +}); diff --git a/truffle-config.js b/truffle-config.js new file mode 100644 index 00000000..e4d7f95d --- /dev/null +++ b/truffle-config.js @@ -0,0 +1,114 @@ +/** + * Use this file to configure your truffle project. It's seeded with some + * common settings for different networks and features like migrations, + * compilation and testing. Uncomment the ones you need or modify + * them to suit your project as necessary. + * + * More information about configuration can be found at: + * + * truffleframework.com/docs/advanced/configuration + * + * To deploy via Infura you'll need a wallet provider (like @truffle/hdwallet-provider) + * to sign your transactions before they're sent to a remote public node. Infura accounts + * are available for free at: infura.io/register. + * + * You'll also need a mnemonic - the twelve word phrase the wallet uses to generate + * public/private key pairs. If you're publishing your code to GitHub make sure you load this + * phrase from a file you've .gitignored so it doesn't accidentally become public. + * + */ + +const fs = require('fs'); +const HDWalletProvider = require('@truffle/hdwallet-provider'); + +const infuraKey = fs.readFileSync(".infurakey").toString().trim(); +const mnemonic = fs.readFileSync(".secrets").toString().trim(); + +module.exports = { + /** + * Networks define how you connect to your ethereum client and let you set the + * defaults web3 uses to send transactions. If you don't specify one truffle + * will spin up a development blockchain for you on port 9545 when you + * run `develop` or `test`. You can ask a truffle command to use a specific + * network from the command line, e.g + * + * $ truffle test --network + */ + + networks: { + // Useful for testing. The `development` name is special - truffle uses it by default + // if it's defined here and no other network is specified at the command line. + // You should run a client (like ganache-cli, geth or parity) in a separate terminal + // tab if you use this network and you must also set the `host`, `port` and `network_id` + // options below to some value. + // + development: { + host: "127.0.0.1", // Localhost (default: none) + port: 8545, // Standard Ethereum port (default: none) + network_id: "*", // Any network (default: none) + }, + + // Another network with more advanced options... + // advanced: { + // port: 8777, // Custom port + // network_id: 1342, // Custom network + // gas: 8500000, // Gas sent with each transaction (default: ~6700000) + // gasPrice: 20000000000, // 20 gwei (in wei) (default: 100 gwei) + // from:
, // Account to send txs from (default: accounts[0]) + // websockets: true // Enable EventEmitter interface for web3 (default: false) + // }, + + // Useful for deploying to a public network. + // NB: It's important to wrap the provider as a function. + ropsten: { + provider: () => new HDWalletProvider(mnemonic, `wss://ropsten.infura.io/ws/v3/${infuraKey}`), + network_id: 3, // Ropsten's id + gas: 5500000, // Ropsten has a lower block limit than mainnet + confirmations: 2, //2 # of confs to wait between deployments. (default: 0) + timeoutBlocks: 200, // # of blocks before a deployment times out (minimum/default: 50) + skipDryRun: true, // Skip dry run before migrations? (default: false for public nets ) + networkCheckTimeout: 99999, + from: "0xeC11B5Da844605b40c2e1f4201e9e4531648b582" + }, + + + // Useful for deploying to a public network. + // NB: It's important to wrap the provider as a function. + rinkeby: { + provider: () => new HDWalletProvider(mnemonic, `wss://rinkeby.infura.io/v3/${infuraKey}`), + network_id: 4, // rinkeby's id + gas: 5500000, // rinkeby has a lower block limit than mainnet + confirmations: 2, //2 # of confs to wait between deployments. (default: 0) + timeoutBlocks: 200, // # of blocks before a deployment times out (minimum/default: 50) + skipDryRun: true, // Skip dry run before migrations? (default: false for public nets ) + networkCheckTimeout: 99999 + }, + + // Useful for private networks + // private: { + // provider: () => new HDWalletProvider(mnemonic, `https://network.io`), + // network_id: 2111, // This network is yours, in the cloud. + // production: true // Treats this network as if it was a public net. (default: false) + // } + }, + + // Set default mocha options here, use special reporters etc. + mocha: { + // timeout: 100000 + }, + + // Configure your compilers + compilers: { + solc: { + version: "^0.8.0", // Fetch exact version from solc-bin (default: truffle's version) + // docker: true, // Use "0.5.1" you've installed locally with docker (default: false) + // settings: { // See the solidity docs for advice about optimization and evmVersion + // optimizer: { + // enabled: false, + // runs: 200 + // }, + // evmVersion: "byzantium" + // } + } + } +}