@omisego/omg-js-rootchain
Version:
Module to interact with the Ethereum RootChain
630 lines (629 loc) • 178 kB
JSON
{
"contractName": "EthVault",
"abi": [
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "depositVerifiers",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_verifier",
"type": "address"
}
],
"name": "setDepositVerifier",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getEffectiveDepositVerifier",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "newDepositVerifierMaturityTimestamp",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "safeGasStipend",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract PlasmaFramework",
"name": "_framework",
"type": "address"
},
{
"internalType": "uint256",
"name": "_safeGasStipend",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "receiver",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "EthWithdrawn",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "receiver",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "WithdrawFailed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "depositor",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "blknum",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "DepositCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "nextDepositVerifier",
"type": "address"
}
],
"name": "SetDepositVerifierCalled",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"internalType": "bytes",
"name": "_depositTx",
"type": "bytes"
}
],
"name": "deposit",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address payable",
"name": "receiver",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.5.11+commit.c082d0b4\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"depositVerifiers\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_verifier\",\"type\":\"address\"}],\"name\":\"setDepositVerifier\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getEffectiveDepositVerifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_depositTx\",\"type\":\"bytes\"}],\"name\":\"deposit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"newDepositVerifierMaturityTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"safeGasStipend\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract PlasmaFramework\",\"name\":\"_framework\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_safeGasStipend\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EthWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"WithdrawFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blknum\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DepositCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nextDepositVerifier\",\"type\":\"address\"}],\"name\":\"SetDepositVerifierCalled\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"deposit(bytes)\":{\"params\":{\"_depositTx\":\"RLP-encoded transaction to act as the deposit\"}},\"getEffectiveDepositVerifier()\":{\"return\":\"Contract address of the deposit verifier\"},\"setDepositVerifier(address)\":{\"details\":\"emit SetDepositVerifierCalledWhen one contract is already set, the next one is effective after 2 * MIN_EXIT_PERIOD. This is to protect deposit transactions already in mempool, and also make sure user only needs to SE within first week when invalid vault is registered. * see: https://github.com/omisego/plasma-contracts/issues/412 https://github.com/omisego/plasma-contracts/issues/173\",\"params\":{\"_verifier\":\"Address of the verifier contract\"}},\"withdraw(address,uint256)\":{\"details\":\"We do not want to block exit queue if a transfer is unsuccessful, so we don't revert on transfer error. However, if there is not enough gas left for the safeGasStipend, then the EVM _will_ revert with an 'out of gas' error. If this happens, the user should retry with higher gas.\",\"params\":{\"amount\":\"The amount of ETH to transfer\",\"receiver\":\"Address of the recipient\"}}}},\"userdoc\":{\"methods\":{\"deposit(bytes)\":{\"notice\":\"Allows a user to deposit ETH into the contract Once the deposit is recognized, the owner may transact on the OmiseGO Network\"},\"getEffectiveDepositVerifier()\":{\"notice\":\"Retrieves the currently effective deposit verifier contract address\"},\"setDepositVerifier(address)\":{\"notice\":\"Sets the deposit verifier contract, which may be called only by the operator\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw ETH that has successfully exited from the OmiseGO Network\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/vaults/EthVault.sol\":\"EthVault\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/BlockController.sol\":{\"keccak256\":\"0xac302eceee96e5a83b7fdfb43d23389f516ff4b7322e5e094d7ad0b3be177c0b\",\"urls\":[\"bzz-raw://cf36aec949574838af497c6448000226d20aea4d0a787c746dd10775166df8a3\",\"dweb:/ipfs/QmQvD1DZfeidC1xiC3fnzTbCcgTTG9MuN6NNwKn965bVvC\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/ExitGameController.sol\":{\"keccak256\":\"0x136c47ad99baab47c0a90499bf359706d1d34bb7de8573ce3f2868bf1440acd8\",\"urls\":[\"bzz-raw://d1291a1b667dc916958dd9d0be246fe6e7601bc0c08be6a7e11747214a94ef59\",\"dweb:/ipfs/QmampH1Xg4Z5KzToYR5Sngt36EFL45psZWtdfstSm9AVoS\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/PlasmaFramework.sol\":{\"keccak256\":\"0x4b017fa7cae50fcf79803255fe0ffe8183e8f3934d9ac46a48235986f4714179\",\"urls\":[\"bzz-raw://30974a631b8c13aedea212390fcc1cf75472dc3f49a9c52eb33fc07c04b545e1\",\"dweb:/ipfs/QmT15Bw5NtE7b1RvVcmRXcGkEAL9BpbbgKwMtJBphXTbLd\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/Protocol.sol\":{\"keccak256\":\"0x81e37c136c340d917e370c58894761aee710bbef727414685490e405bc0f18e8\",\"urls\":[\"bzz-raw://7a54192b587531dd1adc33202479142afdf116385bab22daa153b8d4439d7333\",\"dweb:/ipfs/QmT37F3SCsWLf93okFrx1LUUr6c2zXCj28u2sjXXFBef2X\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/interfaces/IExitProcessor.sol\":{\"keccak256\":\"0x93c31f7c8ff69c80bd30f9296a7b2059affedadefc0c2cfb5c992eb1f1885fa2\",\"urls\":[\"bzz-raw://d56cb65fd67b07cec3bb17f48c064df4ea892780bf21d87d717e6581feb92ffd\",\"dweb:/ipfs/QmZZGPdSSN81c2P1CBnrCQD9mRWntPUPUjm4vCgWsBqS14\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/models/BlockModel.sol\":{\"keccak256\":\"0x7d26be621a43e2b8855f6c71f91c886d3b48ed809f421a1eee9c165c803d0cf7\",\"urls\":[\"bzz-raw://850b2acb61d96e9eb09d8bf24617ecf47aa948d6754b2d09d0e0d2b949193a2d\",\"dweb:/ipfs/QmW8yoi4jZxHAJf4bNjtt3nGckaWUEX92ZbgrKpoRHJGRM\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/registries/ExitGameRegistry.sol\":{\"keccak256\":\"0x4695a609c60b6be59bbc49ed6d3b14725bcc2efcecd083f8cabbcd3ddb399e68\",\"urls\":[\"bzz-raw://d31ca9188c426bbb2e8cf0fca61a9d451497408ddb4708cfc78d543b75fcb274\",\"dweb:/ipfs/QmawYeD9CCd5chGoB62zVKpk5Q9zJxhUUGJu7hUaCF5JXM\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/registries/VaultRegistry.sol\":{\"keccak256\":\"0x7786b4b8b043026655fa872f11ec747ef600100cc73da38369e1e2fd5047c95a\",\"urls\":[\"bzz-raw://b957490e53281e516290455b78722627f5536e0bd6b9bc17777f3f7a93ed9b14\",\"dweb:/ipfs/QmbUEwWfkTCSPPNEjAJUEXwgCCY9cBPgAKJagRbYQ3PSLE\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/utils/ExitPriority.sol\":{\"keccak256\":\"0x18a6c6b1f8c072e693d855bc8991ea4c51951f9058fd116253a1b8ccb6fc1647\",\"urls\":[\"bzz-raw://a22420b5f647d6108be8a3de23b5dd561f65b12dd804ead7edf5384407a506f3\",\"dweb:/ipfs/QmTd986YDqtwQ1eXqUP4esUBKxGthieXJWkQTsMJzewXgA\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/utils/PriorityQueue.sol\":{\"keccak256\":\"0xf46de2038d5fbc06f1aba7f36e7e02ead27485044ccf25afc2b9ad84ea705991\",\"urls\":[\"bzz-raw://a23fd7ad08f351743c7599fa546a0b54586e7e319c00c3e9d41c3aa10546ec5d\",\"dweb:/ipfs/QmWH32SoQmhyy7CE8u8g412e1AosogVE3eEBjrAh9MABvb\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/utils/Quarantine.sol\":{\"keccak256\":\"0x1b685ea3de626e3d8961d0e384a67c3e87752874784cc2e59777857d130f2390\",\"urls\":[\"bzz-raw://28c30354aa580476f230c4d8e151d34337b923caabc6bccfe560d75ef37d446e\",\"dweb:/ipfs/Qmf9nCYFBhHDyMgHmxX5pSkqLpqb2W3XffPopdkJTHmnAA\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/utils/OnlyFromAddress.sol\":{\"keccak256\":\"0x54d4cb74bf5c448bb383ff4ffce898473739a5ba015e439dae1c092c70df943f\",\"urls\":[\"bzz-raw://5c9efbe363534d6746573b9b0dda687d257272c3ce0123b6a45bc7eef55a40b4\",\"dweb:/ipfs/QmZPLF1bKdU6DAZZcxWfMudUwzeubLxsSk14x8hvUMj15X\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/utils/PosLib.sol\":{\"keccak256\":\"0xd47b38ef93cf913b6b7a3bf608dec2c084108d090cc02b222da3d8eb39819d5f\",\"urls\":[\"bzz-raw://c42d551c21adfa400d08108673b29e4bd1eec70aaa469287571071df3f8f0bc1\",\"dweb:/ipfs/Qmepq632azqUDHt5ypVwmkTfeQG8uP1HYw8x1H3Hdg9K6R\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/utils/SafeEthTransfer.sol\":{\"keccak256\":\"0xe707370228eea8c9c613472dd4d44df94ba631892bc74077cf5af24097944aad\",\"urls\":[\"bzz-raw://803b2c876f40f8d8dbcbca8b6cde233d73a98c4d2384c90e259da1c169225de9\",\"dweb:/ipfs/QmZkb1kHBmFb4jGgZepfAJsiZM6beQJiS9x319QZxExiB4\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/vaults/EthVault.sol\":{\"keccak256\":\"0x97b047f61e71f24f0febf094358731d4a61e27219c43162776fff4c37d28948f\",\"urls\":[\"bzz-raw://4d8139071bb54c50fea28af039741b9621d7f92ffb689c74ecb105a315555f7e\",\"dweb:/ipfs/QmaHVjgpcqThQ4MtdnEKQ7HECJrRBRaLd24Exa3oKZj8T5\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/vaults/Vault.sol\":{\"keccak256\":\"0x2db04ba824e64bb121c7a3733654774198011c3b5a264a068c24146dc359444f\",\"urls\":[\"bzz-raw://c047c9e255606d272deccb90edf90ad3eb1bc65780726a91b16792e8e469f577\",\"dweb:/ipfs/QmP6rJfCpRdgbEDaYMr7wgHxM8PyBSk5KAdtVTbkSRXYyF\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/vaults/verifiers/IEthDepositVerifier.sol\":{\"keccak256\":\"0x32e47ecde587dae08d902c081bf9e871137aa5ef049354220cd0360d5deb8e47\",\"urls\":[\"bzz-raw://dfcc1f319dc9131d6a07ae9c867225c66be262e871939d82ab66fd630dd4395f\",\"dweb:/ipfs/Qmef9deSffr7LGBhqqjKSNfqEPNj267WrY2ysXWq9YgZUy\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0xf3358e5819ca73357abd6c90bdfffd0474af54364897f6b3e3234c4b71fbe9a1\",\"urls\":[\"bzz-raw://75ae8d04454d1511a2ed986cc8585736f05c5c25280683b3d24712a9f414a4bf\",\"dweb:/ipfs/Qmb3kNCoBUZdah1AgBBD4zMk898j5Qw8ahT1w5cCMYp5Y3\"]}},\"version\":1}",
"bytecode": "0x60806040527f800000000000000000000000000000000000000000000000000000000000000060135534801561003457600080fd5b50604051610bdb380380610bdb8339818101604052604081101561005757600080fd5b508051602090910151600080546001600160a01b0319166001600160a01b0384161790558161008461009d565b610092906001906010610163565b5050601455506101da565b6100a56101a1565b6100ad6101a1565b6040805160006020808301829052602180840183905284518085039091018152604190930190935281519190920120905b601081101561015a57818382601081106100f457fe5b60209081029190910191909152604080517f010000000000000000000000000000000000000000000000000000000000000081840152602181018590526041808201959095528151808203909501855260610190528251920191909120906001016100de565b50909150505b90565b8260108101928215610191579160200282015b82811115610191578251825591602001919060010190610176565b5061019d9291506101c0565b5090565b6040518061020001604052806010906020820280388339509192915050565b61016091905b8082111561019d57600081556001016101c6565b6109f2806101e96000396000f3fe6080604052600436106100705760003560e01c806398b1e06a1161004e57806398b1e06a14610105578063a7e5994f14610175578063ccbd21761461019c578063f3fef3a3146101b157610070565b806302e9b07b146100755780632c6ce78b146100bb57806352518b7f146100f0575b600080fd5b34801561008157600080fd5b5061009f6004803603602081101561009857600080fd5b50356101ea565b604080516001600160a01b039092168252519081900360200190f35b3480156100c757600080fd5b506100ee600480360360208110156100de57600080fd5b50356001600160a01b0316610207565b005b3480156100fc57600080fd5b5061009f610439565b6100ee6004803603602081101561011b57600080fd5b81019060208101813564010000000081111561013657600080fd5b82018360208201111561014857600080fd5b8035906020019184600183028401116401000000008311171561016a57600080fd5b509092509050610468565b34801561018157600080fd5b5061018a6105e7565b60408051918252519081900360200190f35b3480156101a857600080fd5b5061018a6105ed565b3480156101bd57600080fd5b506100ee600480360360408110156101d457600080fd5b506001600160a01b0381351690602001356105f3565b601181600281106101f757fe5b01546001600160a01b0316905081565b6000809054906101000a90046001600160a01b03166001600160a01b0316634b0a72bc6040518163ffffffff1660e01b815260040160206040518083038186803b15801561025457600080fd5b505afa158015610268573d6000803e3d6000fd5b505050506040513d602081101561027e57600080fd5b5051336001600160a01b038216146102dd576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206164647265737320697320756e617574686f72697a65640000604482015290519081900360640190fd5b6001600160a01b0382166103225760405162461bcd60e51b815260040180806020018281038252602f815260200180610930602f913960400191505060405180910390fd5b6011546001600160a01b0316156103dd5761033b610439565b601180546001600160a01b03199081166001600160a01b0393841617909155601280549091168483161790556000546040805163d4a2b4ef60e01b81529051919092169163d4a2b4ef916004808301926020929190829003018186803b1580156103a457600080fd5b505afa1580156103b8573d6000803e3d6000fd5b505050506040513d60208110156103ce57600080fd5b505160020242016013556103f9565b601180546001600160a01b0319166001600160a01b0384161790555b604080516001600160a01b038416815290517f11e5a7570e0de4b31179f8c9cf5e8a1e6cfd23731ec7a5a06e3006d71dd321fd9181900360200190a15050565b600060135442101561045c57601160005b01546001600160a01b03169050610465565b6011600161044a565b90565b6000610472610439565b90506001600160a01b0381166104b95760405162461bcd60e51b815260040180806020018281038252602181526020018061095f6021913960400191505060405180910390fd5b806001600160a01b031663aee150c7848434336040518563ffffffff1660e01b81526004018080602001848152602001836001600160a01b03166001600160a01b031681526020018281038252868682818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060006040518083038186803b15801561054b57600080fd5b505afa15801561055f573d6000803e3d6000fd5b5050505060006105a484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061074592505050565b604080513481529051919250600091839133917f18569122d84f30025bb8dffb33563f1bdbfb9637f21552b11b8305686e9cb3079181900360200190a450505050565b60135481565b60145481565b60005460408051632d0816d760e11b815233600482015290516001600160a01b0390921691635a102dae91602480820192602092909190829003018186803b15801561063e57600080fd5b505afa158015610652573d6000803e3d6000fd5b505050506040513d602081101561066857600080fd5b50516106a55760405162461bcd60e51b815260040180806020018281038252603e815260200180610980603e913960400191505060405180910390fd5b60006106b483836014546107d7565b90508015610700576040805183815290516001600160a01b038516917f8455ae6be5d92f1df1c3c1484388e247a36c7e60d72055ae216dbc258f257d4b919081900360200190a2610740565b6040805183815290516001600160a01b038516917fa2269912b47133fae1d7f448c9284ea248951ac29b8c7c41d301f8721a38d10d919081900360200190a25b505050565b60008061075183610838565b60008054604080516317cb58d360e31b815260048101859052905193945091926001600160a01b039091169163be5ac69891602480830192602092919082900301818787803b1580156107a357600080fd5b505af11580156107b7573d6000803e3d6000fd5b505050506040513d60208110156107cd57600080fd5b5051949350505050565b60405160009081906001600160a01b038616908490869084818181858888f193505050503d8060008114610827576040519150601f19603f3d011682016040523d82523d6000602084013e61082c565b606091505b50909695505050505050565b60405160006020808301828152845192938493849387939260210191908401908083835b6020831061087b5780518252601f19909201916020918201910161085c565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405280519060200120905060008090505b601081101561092857600160f81b82600183601081106108db57fe5b0154604080516001600160f81b03199094166020808601919091526021850193909352604180850192909252805180850390920182526061909301909252815191012091506001016108bf565b509291505056fe43616e6e6f742073657420616e20656d7074792061646472657373206173206465706f7369742076657269666965724465706f73697420766572696669657220686173206e6f74206265656e2073657443616c6c65642066726f6d2061206e6f6e2d72656769737465726564206f722071756172616e74696e656420657869742067616d6520636f6e7472616374a265627a7a72315820ae344baa03fa432bc0b1a0dd4763366ca4ed5071d603b9b83461b1f84c0f3c7b64736f6c634300050b0032",
"deployedBytecode": "0x6080604052600436106100705760003560e01c806398b1e06a1161004e57806398b1e06a14610105578063a7e5994f14610175578063ccbd21761461019c578063f3fef3a3146101b157610070565b806302e9b07b146100755780632c6ce78b146100bb57806352518b7f146100f0575b600080fd5b34801561008157600080fd5b5061009f6004803603602081101561009857600080fd5b50356101ea565b604080516001600160a01b039092168252519081900360200190f35b3480156100c757600080fd5b506100ee600480360360208110156100de57600080fd5b50356001600160a01b0316610207565b005b3480156100fc57600080fd5b5061009f610439565b6100ee6004803603602081101561011b57600080fd5b81019060208101813564010000000081111561013657600080fd5b82018360208201111561014857600080fd5b8035906020019184600183028401116401000000008311171561016a57600080fd5b509092509050610468565b34801561018157600080fd5b5061018a6105e7565b60408051918252519081900360200190f35b3480156101a857600080fd5b5061018a6105ed565b3480156101bd57600080fd5b506100ee600480360360408110156101d457600080fd5b506001600160a01b0381351690602001356105f3565b601181600281106101f757fe5b01546001600160a01b0316905081565b6000809054906101000a90046001600160a01b03166001600160a01b0316634b0a72bc6040518163ffffffff1660e01b815260040160206040518083038186803b15801561025457600080fd5b505afa158015610268573d6000803e3d6000fd5b505050506040513d602081101561027e57600080fd5b5051336001600160a01b038216146102dd576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206164647265737320697320756e617574686f72697a65640000604482015290519081900360640190fd5b6001600160a01b0382166103225760405162461bcd60e51b815260040180806020018281038252602f815260200180610930602f913960400191505060405180910390fd5b6011546001600160a01b0316156103dd5761033b610439565b601180546001600160a01b03199081166001600160a01b0393841617909155601280549091168483161790556000546040805163d4a2b4ef60e01b81529051919092169163d4a2b4ef916004808301926020929190829003018186803b1580156103a457600080fd5b505afa1580156103b8573d6000803e3d6000fd5b505050506040513d60208110156103ce57600080fd5b505160020242016013556103f9565b601180546001600160a01b0319166001600160a01b0384161790555b604080516001600160a01b038416815290517f11e5a7570e0de4b31179f8c9cf5e8a1e6cfd23731ec7a5a06e3006d71dd321fd9181900360200190a15050565b600060135442101561045c57601160005b01546001600160a01b03169050610465565b6011600161044a565b90565b6000610472610439565b90506001600160a01b0381166104b95760405162461bcd60e51b815260040180806020018281038252602181526020018061095f6021913960400191505060405180910390fd5b806001600160a01b031663aee150c7848434336040518563ffffffff1660e01b81526004018080602001848152602001836001600160a01b03166001600160a01b031681526020018281038252868682818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060006040518083038186803b15801561054b57600080fd5b505afa15801561055f573d6000803e3d6000fd5b5050505060006105a484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061074592505050565b604080513481529051919250600091839133917f18569122d84f30025bb8dffb33563f1bdbfb9637f21552b11b8305686e9cb3079181900360200190a450505050565b60135481565b60145481565b60005460408051632d0816d760e11b815233600482015290516001600160a01b0390921691635a102dae91602480820192602092909190829003018186803b15801561063e57600080fd5b505afa158015610652573d6000803e3d6000fd5b505050506040513d602081101561066857600080fd5b50516106a55760405162461bcd60e51b815260040180806020018281038252603e815260200180610980603e913960400191505060405180910390fd5b60006106b483836014546107d7565b90508015610700576040805183815290516001600160a01b038516917f8455ae6be5d92f1df1c3c1484388e247a36c7e60d72055ae216dbc258f257d4b919081900360200190a2610740565b6040805183815290516001600160a01b038516917fa2269912b47133fae1d7f448c9284ea248951ac29b8c7c41d301f8721a38d10d919081900360200190a25b505050565b60008061075183610838565b60008054604080516317cb58d360e31b815260048101859052905193945091926001600160a01b039091169163be5ac69891602480830192602092919082900301818787803b1580156107a357600080fd5b505af11580156107b7573d6000803e3d6000fd5b505050506040513d60208110156107cd57600080fd5b5051949350505050565b60405160009081906001600160a01b038616908490869084818181858888f193505050503d8060008114610827576040519150601f19603f3d011682016040523d82523d6000602084013e61082c565b606091505b50909695505050505050565b60405160006020808301828152845192938493849387939260210191908401908083835b6020831061087b5780518252601f19909201916020918201910161085c565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405280519060200120905060008090505b601081101561092857600160f81b82600183601081106108db57fe5b0154604080516001600160f81b03199094166020808601919091526021850193909352604180850192909252805180850390920182526061909301909252815191012091506001016108bf565b509291505056fe43616e6e6f742073657420616e20656d7074792061646472657373206173206465706f7369742076657269666965724465706f73697420766572696669657220686173206e6f74206265656e2073657443616c6c65642066726f6d2061206e6f6e2d72656769737465726564206f722071756172616e74696e656420657869742067616d6520636f6e7472616374a265627a7a72315820ae344baa03fa432bc0b1a0dd4763366ca4ed5071d603b9b83461b1f84c0f3c7b64736f6c634300050b0032",
"sourceMap": "176:2098:97:-;;;1015:8:98;962:61;;580:139:97;8:9:-1;5:2;;;30:1;27;20:12;5:2;580:139:97;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;580:139:97;;;;;;;1114:9:98;:22;;-1:-1:-1;;;;;;1114:22:98;-1:-1:-1;;;;;1114:22:98;;;;;580:139:97;1159:15:98;:13;:15::i;:::-;1146:28;;:10;;:28;;:::i;:::-;-1:-1:-1;;680:14:97;:32;-1:-1:-1;176:2098:97;;1294:378:98;1341:18;;:::i;:::-;1371:25;;:::i;:::-;1435:39;;;1406:16;1435:39;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1435:39:98;;;;;;;1425:50;;;;;;;;1485:158;1506:2;1502:1;:6;1485:158;;;1541:8;1529:6;1536:1;1529:9;;;;;;;;;;;;;;;:20;;;;1584:47;;;1601:9;1584:47;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1584:47:98;;;;1574:58;;;;;;;;;456:4;1510:3;1485:158;;;-1:-1:-1;1659:6:98;;-1:-1:-1;;1294:378:98;;:::o;176:2098:97:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;176:2098:97;;;-1:-1:-1;176:2098:97;:::i;:::-;;;:::o;:::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;176:2098:97;;;-1:-1:-1;;176:2098:97:o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;",
"deployedSourceMap": "176:2098:97:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;922:34:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;922:34:98;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;922:34:98;;:::i;:::-;;;;-1:-1:-1;;;;;922:34:98;;;;;;;;;;;;;;2670:560;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2670:560:98;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2670:560:98;-1:-1:-1;;;;;2670:560:98;;:::i;:::-;;3391:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3391:240:98;;;:::i;959:449:97:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;959:449:97;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;959:449:97;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;959:449:97;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;959:449:97;;-1:-1:-1;959:449:97;-1:-1:-1;959:449:97;:::i;962:61:98:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;962:61:98;;;:::i;:::-;;;;;;;;;;;;;;;;544:29:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;544:29:97;;;:::i;1920:352::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1920:352:97;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1920:352:97;;;;;;;;:::i;922:34:98:-;;;;;;;;;;;;-1:-1:-1;;;;;922:34:98;;-1:-1:-1;922:34:98;:::o;2670:560::-;2733:9;;;;;;;;;-1:-1:-1;;;;;2733:9:98;-1:-1:-1;;;;;2733:23:98;;:25;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2733:25:98;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2733:25:98;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2733:25:98;109:10:91;-1:-1:-1;;;;;109:20:91;;;101:63;;;;;-1:-1:-1;;;101:63:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2778:23:98;;2770:83;;;;-1:-1:-1;;;2770:83:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2868:16;:19;-1:-1:-1;;;;;2868:19:98;:33;2864:309;;2939:29;:27;:29::i;:::-;2917:16;:51;;-1:-1:-1;;;;;;2917:51:98;;;-1:-1:-1;;;;;2917:51:98;;;;;;;2982:19;:31;;;;;;;;;;;-1:-1:-1;3075:9:98;:25;;;-1:-1:-1;;;3075:25:98;;;;:9;;;;;:23;;:25;;;;;;;;;;;;;;:9;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;3075:25:98;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3075:25:98;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3075:25:98;3071:1;:29;3065:3;:35;3027;:73;2864:309;;;3131:16;:31;;-1:-1:-1;;;;;;3131:31:98;-1:-1:-1;;;;;3131:31:98;;;;;2864:309;3188:35;;;-1:-1:-1;;;;;3188:35:98;;;;;;;;;;;;;;;2670:560;;:::o;3391:240::-;3451:7;3480:35;;3474:3;:41;3470:155;;;3538:16;3555:1;3538:19;;;-1:-1:-1;;;;;3538:19:98;;-1:-1:-1;3531:26:98;;3470:155;3595:16;3612:1;3595:19;;3470:155;3391:240;:::o;959:449:97:-;1030:23;1056:35;:33;:35::i;:::-;1030:61;-1:-1:-1;;;;;;1109:29:97;;1101:75;;;;-1:-1:-1;;;1101:75:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1207:15;-1:-1:-1;;;;;1187:43:97;;1231:10;;1243:9;1254:10;1187:78;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1187:78:97;-1:-1:-1;;;;;1187:78:97;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1187:78:97;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1187:78:97;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1187:78:97;;;;1275:14;1292:36;1317:10;;1292:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1292:24:97;;-1:-1:-1;;;1292:36:97:i;:::-;1344:57;;;1391:9;1344:57;;;;1275:53;;-1:-1:-1;1387:1:97;;1275:53;;1359:10;;1344:57;;;;;;;;;959:449;;;;:::o;962:61:98:-;;;;:::o;544:29:97:-;;;;:::o;1920:352::-;1875:9:98;;1858:59;;;-1:-1:-1;;;1858:59:98;;1906:10;1858:59;;;;;;-1:-1:-1;;;;;1875:9:98;;;;1858:47;;:59;;;;;;;;;;;;;;;1875:9;1858:59;;;5:2:-1;;;;30:1;27;20:12;5:2;1858:59:98;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1858:59:98;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1858:59:98;1837:168;;;;-1:-1:-1;;;1837:168:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2030:12:97;2045:70;2082:8;2092:6;2100:14;;2045:36;:70::i;:::-;2030:85;;2129:7;2125:141;;;2157:30;;;;;;;;-1:-1:-1;;;;;2157:30:97;;;;;;;;;;;;;2125:141;;;2223:32;;;;;;;;-1:-1:-1;;;;;2223:32:97;;;;;;;;;;;;;2125:141;2015:1:98;1920:352:97;;:::o;3802:240:98:-;3872:7;3891:12;3906:30;3926:9;3906:19;:30::i;:::-;3947:21;3971:9;;:34;;;-1:-1:-1;;;3971:34:98;;;;;;;;;;3891:45;;-1:-1:-1;3947:21:98;;-1:-1:-1;;;;;3971:9:98;;;;:28;;:34;;;;;;;;;;;;;;3947:21;3971:9;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;3971:34:98;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3971:34:98;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3971:34:98;;3802:240;-1:-1:-1;;;;3802:240:98:o;1610:243:95:-;1775:47;;1736:4;;;;-1:-1:-1;;;;;1775:13:95;;;1793:10;;1811:6;;1736:4;1775:47;1736:4;1775:47;1811:6;1775:13;1793:10;1775:47;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;-1:-1;1756:66:95;;1610:243;-1:-1:-1;;;;;;1610:243:95:o;4048:316:98:-;4167:38;;4123:7;4167:38;;;;;;;;;4123:7;;;;;;4195:9;;4167:38;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4167:38:98;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4167:38:98;;;4157:49;;;;;;4142:64;;4221:6;4230:1;4221:10;;4216:121;4237:2;4233:1;:6;4216:121;;;-1:-1:-1;;;4305:4:98;456;4322:1;4311:13;;;;;;;;;4277:48;;;-1:-1:-1;;;;;;4277:48:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;4277:48:98;;;;;;;4267:59;;;;;;-1:-1:-1;4277:48:98;4241:3;4216:121;;;-1:-1:-1;4353:4:98;4048:316;-1:-1:-1;;4048:316:98:o",
"source": "pragma solidity 0.5.11;\n\nimport \"./Vault.sol\";\nimport \"./verifiers/IEthDepositVerifier.sol\";\nimport \"../framework/PlasmaFramework.sol\";\nimport \"../utils/SafeEthTransfer.sol\";\n\ncontract EthVault is Vault {\n event EthWithdrawn(\n address indexed receiver,\n uint256 amount\n );\n\n event WithdrawFailed(\n address indexed receiver,\n uint256 amount\n );\n\n event DepositCreated(\n address indexed depositor,\n uint256 indexed blknum,\n address indexed token,\n uint256 amount\n );\n\n uint256 public safeGasStipend;\n\n constructor(PlasmaFramework _framework, uint256 _safeGasStipend) public Vault(_framework) {\n safeGasStipend = _safeGasStipend;\n }\n\n /**\n * @notice Allows a user to deposit ETH into the contract\n * Once the deposit is recognized, the owner may transact on the OmiseGO Network\n * @param _depositTx RLP-encoded transaction to act as the deposit\n */\n function deposit(bytes calldata _depositTx) external payable {\n address depositVerifier = super.getEffectiveDepositVerifier();\n require(depositVerifier != address(0), \"Deposit verifier has not been set\");\n\n IEthDepositVerifier(depositVerifier).verify(_depositTx, msg.value, msg.sender);\n uint256 blknum = super.submitDepositBlock(_depositTx);\n\n emit DepositCreated(msg.sender, blknum, address(0), msg.value);\n }\n\n /**\n * @notice Withdraw ETH that has successfully exited from the OmiseGO Network\n * @dev We do not want to block exit queue if a transfer is unsuccessful, so we don't revert on transfer error.\n * However, if there is not enough gas left for the safeGasStipend, then the EVM _will_ revert with an 'out of gas' error.\n * If this happens, the user should retry with higher gas.\n * @param receiver Address of the recipient\n * @param amount The amount of ETH to transfer\n */\n function withdraw(address payable receiver, uint256 amount) external onlyFromNonQuarantinedExitGame {\n bool success = SafeEthTransfer.transferReturnResult(receiver, amount, safeGasStipend);\n if (success) {\n emit EthWithdrawn(receiver, amount);\n } else {\n emit WithdrawFailed(receiver, amount);\n }\n }\n}\n",
"sourcePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/vaults/EthVault.sol",
"ast": {
"absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/vaults/EthVault.sol",
"exportedSymbols": {
"EthVault": [
15393
]
},
"id": 15394,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 15264,
"literals": [
"solidity",
"0.5",
".11"
],
"nodeType": "PragmaDirective",
"src": "0:23:97"
},
{
"absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/vaults/Vault.sol",
"file": "./Vault.sol",
"id": 15265,
"nodeType": "ImportDirective",
"scope": 15394,
"sourceUnit": 15664,
"src": "25:21:97",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/vaults/verifiers/IEthDepositVerifier.sol",
"file": "./verifiers/IEthDepositVerifier.sol",
"id": 15266,
"nodeType": "ImportDirective",
"scope": 15394,
"sourceUnit": 15978,
"src": "47:45:97",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/PlasmaFramework.sol",
"file": "../framework/PlasmaFramework.sol",
"id": 15267,
"nodeType": "ImportDirective",
"scope": 15394,
"sourceUnit": 12153,
"src": "93:42:97",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/utils/SafeEthTransfer.sol",
"file": "../utils/SafeEthTransfer.sol",
"id": 15268,
"nodeType": "ImportDirective",
"scope": 15394,
"sourceUnit": 15132,
"src": "136:38:97",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 15269,
"name": "Vault",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 15663,
"src": "197:5:97",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vault_$15663",
"typeString": "contract Vault"
}
},
"id": 15270,
"nodeType": "InheritanceSpecifier",
"src": "197:5:97"
}
],
"contractDependencies": [
14291,
15663
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 15393,
"linearizedBaseContracts": [
15393,
15663,
14291
],
"name": "EthVault",
"nodeType": "ContractDefinition",
"nodes": [
{
"anonymous": false,
"documentation": null,
"id": 15276,
"name": "EthWithdrawn",
"nodeType": "EventDefinition",
"parameters": {
"id": 15275,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 15272,
"indexed": true,
"name": "receiver",
"nodeType": "VariableDeclaration",
"scope": 15276,
"src": "237:24:97",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 15271,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "237:7:97",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 15274,
"indexed": false,
"name": "amount",
"nodeType": "VariableDeclaration",
"scope": 15276,
"src": "271:14:97",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 15273,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "271:7:97",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "227:64:97"
},
"src": "209:83:97"
},
{
"anonymous": false,
"documentation": null,
"id": 15282,
"name": "WithdrawFailed",
"nodeType": "EventDefinition",
"parameters": {
"id": 15281,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 15278,
"indexed": true,
"name": "receiver",
"nodeType": "VariableDeclaration",
"scope": 15282,
"src": "328:24:97",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 15277,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "328:7:97",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 15280,
"indexed": false,
"name": "amount",
"nodeType": "VariableDeclaration",
"scope": 15282,
"src": "362:14:97",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 15279,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "362:7:97",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "318:64:97"
},
"src": "298:85:97"
},
{
"anonymous": false,
"documentation": null,
"id": 15292,
"name": "DepositCreated",
"nodeType": "EventDefinition",
"parameters": {
"id": 15291,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 15284,
"indexed": true,
"name": "depositor",
"nodeType": "VariableDeclaration",
"scope": 15292,
"src": "419:25:97",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 15283,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "419:7:97",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 15286,
"indexed": true,
"name": "blknum",
"nodeType": "VariableDeclaration",
"scope": 15292,
"src": "454:22:97",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 15285,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "454:7:97",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 15288,
"indexed": true,
"name": "token",
"nodeType": "VariableDeclaration",
"scope": 15292,
"src": "486:21:97",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 15287,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "486:7:97",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 15290,
"indexed": false,
"name": "amount",
"nodeType": "VariableDeclaration",
"scope": 15292,
"src": "517:14:97",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 15289,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "517:7:97",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "409:128:97"
},
"src": "389:149:97"
},
{
"constant": false,
"id": 15294,
"name": "safeGasStipend",
"nodeType": "VariableDeclaration",
"scope": 15393,
"src": "544:29:97",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 15293,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "544:7:97",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 15308,
"nodeType": "Block",
"src": "670:49:97",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 15306,
"isConstant": false,