{ "contractName": "MultiSigWalletWithTimelock", "abi": [ { "inputs": [ { "internalType": "address[]", "name": "_owners", "type": "address[]" }, { "internalType": "uint256", "name": "_required", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "Confirmation", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Deposit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "Execution", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "ExecutionFailure", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "lockSeconds", "type": "uint256" } ], "name": "LockSecondsChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnerAddition", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnerRemoval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "required", "type": "uint256" } ], "name": "RequirementChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "Revocation", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "Submission", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "transactionId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "confirmationTime", "type": "uint256" } ], "name": "UnlockTimeSet", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [], "name": "MAX_OWNER_COUNT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "confirmations", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "emergencyCalls", "outputs": [ { "internalType": "bytes32", "name": "selector", "type": "bytes32" }, { "internalType": "uint256", "name": "paramsBytesCount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lockSeconds", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "owners", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "required", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "transactionCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "transactions", "outputs": [ { "internalType": "address", "name": "destination", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "bool", "name": "executed", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "unlockTimes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" }, { "inputs": [], "name": "getEmergencyCallsCount", "outputs": [ { "internalType": "uint256", "name": "count", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "addOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "removeOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "replaceOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_required", "type": "uint256" } ], "name": "changeRequirement", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_lockSeconds", "type": "uint256" } ], "name": "changeLockSeconds", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "destination", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "submitTransaction", "outputs": [ { "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "confirmTransaction", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "funcName", "type": "string" }, { "internalType": "uint256", "name": "_paramsBytesCount", "type": "uint256" } ], "name": "addEmergencyCall", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "revokeConfirmation", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "executeTransaction", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "isConfirmed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "getConfirmationCount", "outputs": [ { "internalType": "uint256", "name": "count", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "pending", "type": "bool" }, { "internalType": "bool", "name": "executed", "type": "bool" } ], "name": "getTransactionCount", "outputs": [ { "internalType": "uint256", "name": "count", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOwners", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "getConfirmations", "outputs": [ { "internalType": "address[]", "name": "_confirmations", "type": "address[]" } ], "stateMutability": "view", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_owners\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"_required\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"Confirmation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"Execution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"ExecutionFailure\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"lockSeconds\",\"type\":\"uint256\"}],\"name\":\"LockSecondsChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnerAddition\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnerRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"RequirementChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"Revocation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"Submission\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"confirmationTime\",\"type\":\"uint256\"}],\"name\":\"UnlockTimeSet\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"MAX_OWNER_COUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"funcName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_paramsBytesCount\",\"type\":\"uint256\"}],\"name\":\"addEmergencyCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"addOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_lockSeconds\",\"type\":\"uint256\"}],\"name\":\"changeLockSeconds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_required\",\"type\":\"uint256\"}],\"name\":\"changeRequirement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"confirmTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"confirmations\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"emergencyCalls\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"selector\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"paramsBytesCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"executeTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"getConfirmationCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"getConfirmations\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"_confirmations\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getEmergencyCallsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"pending\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"}],\"name\":\"getTransactionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"isConfirmed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lockSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"owners\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"removeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"replaceOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"required\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"revokeConfirmation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"submitTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transactionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"transactions\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"unlockTimes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"methods\":{\"addOwner(address)\":{\"details\":\"Allows to add a new owner. Transaction has to be sent by wallet.\",\"params\":{\"owner\":\"Address of new owner.\"}},\"changeLockSeconds(uint256)\":{\"details\":\"Changes the duration of the time lock for transactions.\",\"params\":{\"_lockSeconds\":\"Duration needed after a transaction is confirmed and before it becomes executable, in seconds.\"}},\"changeRequirement(uint256)\":{\"details\":\"Allows to change the number of required confirmations. Transaction has to be sent by wallet.\",\"params\":{\"_required\":\"Number of required confirmations.\"}},\"confirmTransaction(uint256)\":{\"details\":\"Allows an owner to confirm a transaction.\",\"params\":{\"transactionId\":\"Transaction ID.\"}},\"constructor\":{\"details\":\"Contract constructor sets initial owners and required number of confirmations.\",\"params\":{\"_owners\":\"List of initial owners.\",\"_required\":\"Number of required confirmations.\"}},\"executeTransaction(uint256)\":{\"details\":\"Allows anyone to execute a confirmed transaction.\",\"params\":{\"transactionId\":\"Transaction ID.\"}},\"getConfirmationCount(uint256)\":{\"details\":\"Returns number of confirmations of a transaction.\",\"params\":{\"transactionId\":\"Transaction ID.\"},\"returns\":{\"count\":\"Number of confirmations.\"}},\"getConfirmations(uint256)\":{\"details\":\"Returns array with owner addresses, which confirmed transaction.\",\"params\":{\"transactionId\":\"Transaction ID.\"},\"returns\":{\"_confirmations\":\"Returns array of owner addresses.\"}},\"getOwners()\":{\"details\":\"Returns list of owners.\",\"returns\":{\"_0\":\"List of owner addresses.\"}},\"getTransactionCount(bool,bool)\":{\"details\":\"Returns total number of transactions after filers are applied.\",\"params\":{\"executed\":\"Include executed transactions.\",\"pending\":\"Include pending transactions.\"},\"returns\":{\"count\":\"Total number of transactions after filters are applied.\"}},\"isConfirmed(uint256)\":{\"details\":\"Returns the confirmation status of a transaction.\",\"params\":{\"transactionId\":\"Transaction ID.\"},\"returns\":{\"_0\":\"Confirmation status.\"}},\"removeOwner(address)\":{\"details\":\"Allows to remove an owner. Transaction has to be sent by wallet.\",\"params\":{\"owner\":\"Address of owner.\"}},\"replaceOwner(address,address)\":{\"details\":\"Allows to replace an owner with a new owner. Transaction has to be sent by wallet.\",\"params\":{\"owner\":\"Address of new owner.\"}},\"revokeConfirmation(uint256)\":{\"details\":\"Allows an owner to revoke a confirmation for a transaction.\",\"params\":{\"transactionId\":\"Transaction ID.\"}},\"submitTransaction(address,uint256,bytes)\":{\"details\":\"Allows an owner to submit and confirm a transaction.\",\"params\":{\"data\":\"Transaction data payload.\",\"destination\":\"Transaction target address.\",\"value\":\"Transaction ether value.\"},\"returns\":{\"transactionId\":\"Returns transaction ID.\"}}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/MultiSig.sol\":\"MultiSigWalletWithTimelock\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/MultiSig.sol\":{\"keccak256\":\"0xc0b34ead7b6682f104ab6ef3619a44a250120765b5b839c4051db184a225c94c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3fec498e6b08ec430db4c3e83209423191fdce6c1768aa315c73721495c128cd\",\"dweb:/ipfs/QmUY3GWLiSZWAYw3y4sBmEy6xZtfxBWkSJEc7cbLe5i2F5\"]}},\"version\":1}", "bytecode": "0x6080604052620151806000553480156200001857600080fd5b5060405162002359380380620023598339810160408190526200003b9162000367565b81518160328211806200004d57508181115b8062000057575080155b8062000061575081155b156200008a5760405162461bcd60e51b81526004016200008190620004b4565b60405180910390fd5b60005b84518110156200016f5760036000868381518110620000a857fe5b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff168062000101575060006001600160a01b0316858281518110620000ee57fe5b60200260200101516001600160a01b0316145b15620001215760405162461bcd60e51b815260040162000081906200048f565b6001600360008784815181106200013457fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556001016200008d565b50835162000185906005906020870190620002b5565b5060068390556040805180820190915260089080620001a76060820162000424565b60408051601f19818403018152918152815160209283012083526000928201839052845460018181018755958452928290208451600290940201928355920151920191909155805180820190915260089080620002076060820162000476565b60408051601f198184030181529181528151602092830120835291810182905283546001818101865560009586529482902084516002909202019081559201519190920155805180820190915260089080620002666060820162000440565b60408051601f1981840301815291815281516020928301208352918101919091528254600181810185556000948552938290208351600290920201908155910151910155506200051292505050565b8280548282559060005260206000209081019282156200030d579160200282015b828111156200030d57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620002d6565b506200031b9291506200031f565b5090565b6200034691905b808211156200031b5780546001600160a01b031916815560010162000326565b90565b80516001600160a01b03811681146200036157600080fd5b92915050565b600080604083850312156200037a578182fd5b82516001600160401b038082111562000391578384fd5b81850186601f820112620003a3578485fd5b8051925081831115620003b4578485fd5b60209150818302620003c8838201620004eb565b8481528381019083850183850186018b1015620003e3578889fd5b8894505b868510156200041157620003fc8b8262000349565b835260019490940193918501918501620003e7565b5097909301519698969750505050505050565b6f636c61696d4f776e657273686970282960801b815260100190565b7f7365744c697175696469747950726f7669646572466565526174652875696e748152633235362960e01b602082015260240190565b6c7365744b2875696e743235362960981b8152600d0190565b6020808252600b908201526a27aba722a92fa2a92927a960a91b604082015260600190565b60208082526017908201527f56414c49445f524551554952454d454e545f4552524f52000000000000000000604082015260600190565b6040518181016001600160401b03811182821017156200050a57600080fd5b604052919050565b611e3780620005226000396000f3fe6080604052600436106101855760003560e01c8063a0e67e2b116100d1578063c0af02271161008a578063dc8452cd11610064578063dc8452cd146104f7578063e20056e61461050c578063ee22610b1461052c578063f075fb901461054c576101d4565b8063c0af0227146104ad578063c6427474146104c2578063d74f8edd146104e2576101d4565b8063a0e67e2b14610401578063b5dc40c314610423578063b77bf60014610443578063ba51a6df14610458578063bfa6fddb14610478578063c01a8c841461048d576101d4565b80637065cb481161013e57806386384afc1161011857806386384afc146103635780638b51d13f146103915780638c22d5d3146103b15780639ace38c2146103d1576101d4565b80637065cb481461030357806376ac947a14610323578063784547a714610343576101d4565b8063025e7c2714610213578063173825d91461024957806320ea8d86146102695780632f54bf6e146102895780633411c81c146102b657806354741525146102d6576101d4565b366101d45734156101d257336001600160a01b03167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040516101c99190611dc8565b60405180910390a25b005b34156101d257336001600160a01b03167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040516101c99190611dc8565b34801561021f57600080fd5b5061023361022e366004611a59565b61056c565b6040516102409190611b20565b60405180910390f35b34801561025557600080fd5b506101d26102643660046118a9565b610593565b34801561027557600080fd5b506101d2610284366004611a59565b61071a565b34801561029557600080fd5b506102a96102a43660046118a9565b610809565b6040516102409190611bd2565b3480156102c257600080fd5b506102a96102d1366004611a71565b61081e565b3480156102e257600080fd5b506102f66102f1366004611990565b61083e565b6040516102409190611dc8565b34801561030f57600080fd5b506101d261031e3660046118a9565b6108aa565b34801561032f57600080fd5b506102f661033e366004611a59565b610a04565b34801561034f57600080fd5b506102a961035e366004611a59565b610a16565b34801561036f57600080fd5b5061038361037e366004611a59565b610aa0565b604051610240929190611bdd565b34801561039d57600080fd5b506102f66103ac366004611a59565b610acb565b3480156103bd57600080fd5b506101d26103cc366004611a59565b610b3a565b3480156103dd57600080fd5b506103f16103ec366004611a59565b610b99565b6040516102409493929190611b34565b34801561040d57600080fd5b50610416610c55565b6040516102409190611b85565b34801561042f57600080fd5b5061041661043e366004611a59565b610cb8565b34801561044f57600080fd5b506102f6610e5c565b34801561046457600080fd5b506101d2610473366004611a59565b610e62565b34801561048457600080fd5b506102f6610f04565b34801561049957600080fd5b506101d26104a8366004611a59565b610f0a565b3480156104b957600080fd5b506102f661108c565b3480156104ce57600080fd5b506102f66104dd3660046118ff565b611092565b3480156104ee57600080fd5b506102f6611202565b34801561050357600080fd5b506102f6611207565b34801561051857600080fd5b506101d26105273660046118cb565b61120d565b34801561053857600080fd5b506101d2610547366004611a59565b6113c3565b34801561055857600080fd5b506101d26105673660046119bb565b61155e565b6005818154811061057957fe5b6000918252602090912001546001600160a01b0316905081565b3330146105bb5760405162461bcd60e51b81526004016105b290611cb9565b60405180910390fd5b6001600160a01b038116600090815260036020526040902054819060ff166105f55760405162461bcd60e51b81526004016105b290611d10565b6001600160a01b0382166000908152600360205260408120805460ff191690555b600554600019018110156106c957826001600160a01b03166005828154811061063b57fe5b6000918252602090912001546001600160a01b031614156106c15760058054600019810190811061066857fe5b600091825260209091200154600580546001600160a01b03909216918390811061068e57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506106c9565b600101610616565b5060055460065411156106e2576005546106e290610e62565b6040516001600160a01b038316907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a25050565b3360008181526003602052604090205460ff166107495760405162461bcd60e51b81526004016105b290611d10565b60008281526002602090815260408083203380855292529091205483919060ff166107865760405162461bcd60e51b81526004016105b290611beb565b600084815260016020526040902060030154849060ff16156107ba5760405162461bcd60e51b81526004016105b290611ce4565b6000858152600260209081526040808320338085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35050505050565b60036020526000908152604090205460ff1681565b600260209081526000928352604080842090915290825290205460ff1681565b6000805b6007548110156108a35783801561086b575060008181526001602052604090206003015460ff16155b8061088f575082801561088f575060008181526001602052604090206003015460ff165b1561089b576001820191505b600101610842565b5092915050565b3330146108c95760405162461bcd60e51b81526004016105b290611cb9565b6001600160a01b038116600090815260036020526040902054819060ff16156109045760405162461bcd60e51b81526004016105b290611c14565b816001600160a01b03811661092b5760405162461bcd60e51b81526004016105b290611d69565b600580549050600101600654603282118061094557508181115b8061094e575080155b80610957575081155b156109745760405162461bcd60e51b81526004016105b290611d91565b6001600160a01b038516600081815260036020526040808220805460ff1916600190811790915560058054918201815583527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b03191684179055517ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d9190a25050505050565b60046020526000908152604090205481565b600080805b600554811015610a945760008481526002602052604081206005805491929184908110610a4457fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610a78576001820191505b6006548210610a8c57600192505050610a9b565b600101610a1b565b5060009150505b919050565b60088181548110610aad57fe5b60009182526020909120600290910201805460019091015490915082565b6000805b600554811015610b345760008381526002602052604081206005805491929184908110610af857fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610b2c576001820191505b600101610acf565b50919050565b333014610b595760405162461bcd60e51b81526004016105b290611cb9565b60008190556040517f884d6758bafbcb4b5e2e0393178ca1f3da3dd380a54ce05ab60aa59756db9dc190610b8e908390611dc8565b60405180910390a150565b6001602081815260009283526040928390208054818401546002808401805488516101009882161598909802600019011691909104601f81018690048602870186019097528686526001600160a01b039092169590949293830182828015610c425780601f10610c1757610100808354040283529160200191610c42565b820191906000526020600020905b815481529060010190602001808311610c2557829003601f168201915b5050506003909301549192505060ff1684565b60606005805480602002602001604051908101604052809291908181526020018280548015610cad57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c8f575b505050505090505b90565b600554606090819067ffffffffffffffff81118015610cd657600080fd5b50604051908082528060200260200182016040528015610d00578160200160208202803683370190505b5090506000805b600554811015610dc35760008581526002602052604081206005805491929184908110610d3057fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610dbb5760058181548110610d6a57fe5b9060005260206000200160009054906101000a90046001600160a01b0316838381518110610d9457fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001820191505b600101610d07565b8167ffffffffffffffff81118015610dda57600080fd5b50604051908082528060200260200182016040528015610e04578160200160208202803683370190505b509350600090505b81811015610e5457828181518110610e2057fe5b6020026020010151848281518110610e3457fe5b6001600160a01b0390921660209283029190910190910152600101610e0c565b505050919050565b60075481565b333014610e815760405162461bcd60e51b81526004016105b290611cb9565b600554816032821180610e9357508181115b80610e9c575080155b80610ea5575081155b15610ec25760405162461bcd60e51b81526004016105b290611d91565b60068390556040517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a90610ef7908590611dc8565b60405180910390a1505050565b60005481565b3360008181526003602052604090205460ff16610f395760405162461bcd60e51b81526004016105b290611d10565b60008281526001602052604090205482906001600160a01b0316610f6f5760405162461bcd60e51b81526004016105b290611c82565b60008381526002602090815260408083203380855292529091205484919060ff1615610fad5760405162461bcd60e51b81526004016105b290611d3c565b6000858152600260209081526040808320338085529252808320805460ff191660011790555187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a361100185610a16565b80156110195750600085815260046020526040902054155b801561102b5750611029856115e2565b155b15611085576000805486825260046020526040918290204290910190819055905186907f280af6a3ba059a74f0e894262aa07f2c4d0de1e231882263c0d7dcda111b1a449061107b908490611dc8565b60405180910390a2505b5050505050565b60085490565b3360008181526003602052604081205490919060ff166110c45760405162461bcd60e51b81526004016105b290611d10565b856001600160a01b0381166110eb5760405162461bcd60e51b81526004016105b290611d69565b60075492506040518060800160405280886001600160a01b0316815260200187815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093855250505060209182018190528581526001808352604091829020845181546001600160a01b0319166001600160a01b039091161781558484015191810191909155908301518051919261119f926002850192909101906117cd565b50606091909101516003909101805460ff191691151591909117905560078054600101905560405183907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a26111f883610f0a565b5050949350505050565b603281565b60065481565b33301461122c5760405162461bcd60e51b81526004016105b290611cb9565b6001600160a01b038216600090815260036020526040902054829060ff166112665760405162461bcd60e51b81526004016105b290611d10565b6001600160a01b038216600090815260036020526040902054829060ff16156112a15760405162461bcd60e51b81526004016105b290611c14565b60005b60055481101561132957846001600160a01b0316600582815481106112c557fe5b6000918252602090912001546001600160a01b031614156113215783600582815481106112ee57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611329565b6001016112a4565b506001600160a01b03808516600081815260036020526040808220805460ff1990811690915593871682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a26040516001600160a01b038416907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a250505050565b3360008181526003602052604090205460ff166113f25760405162461bcd60e51b81526004016105b290611d10565b600082815260016020526040902060030154829060ff16156114265760405162461bcd60e51b81526004016105b290611ce4565b6000838152600460205260409020544210156114545760405162461bcd60e51b81526004016105b290611c4b565b61145d83610a16565b1561155957600083815260016020819052604080832060038101805460ff19168417905580549281015491519093926001600160a01b031691906114a5906002860190611a94565b60006040518083038185875af1925050503d80600081146114e2576040519150601f19603f3d011682016040523d82523d6000602084013e6114e7565b606091505b5050905080156115215760405185907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2611085565b60405185907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a250600301805460ff191690555b505050565b33301461157d5760405162461bcd60e51b81526004016105b290611cb9565b600860405180604001604052808460405160200161159b9190611b04565b60408051601f198184030181529190528051602091820120825290810193909352815460018181018455600093845292849020825160029092020190815592015191015550565b60008181526001602081815260408084206002908101805483519581161561010002600019011691909104601f8101849004840285018401909252818452606093929091908301828280156116785780601f1061164d57610100808354040283529160200191611678565b820191906000526020600020905b81548152906001019060200180831161165b57829003601f168201915b50939450600093505050505b600854811015610a945761169661184b565b600882815481106116a357fe5b9060005260206000209060020201604051806040016040529081600082015481526020016001820154815250509050806020015160040183511480156116eb57506004835110155b801561171d5750826000815181106116ff57fe5b602091010151815160001a60f81b6001600160f81b03199081169116145b801561174f57508260018151811061173157fe5b602091010151815160011a60f81b6001600160f81b03199081169116145b801561178157508260028151811061176357fe5b602091010151815160021a60f81b6001600160f81b03199081169116145b80156117b357508260038151811061179557fe5b602091010151815160031a60f81b6001600160f81b03199081169116145b156117c45760019350505050610a9b565b50600101611684565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061180e57805160ff191683800117855561183b565b8280016001018555821561183b579182015b8281111561183b578251825591602001919060010190611820565b50611847929150611862565b5090565b604080518082019091526000808252602082015290565b610cb591905b808211156118475760008155600101611868565b80356001600160a01b038116811461189357600080fd5b92915050565b8035801515811461189357600080fd5b6000602082840312156118ba578081fd5b6118c4838361187c565b9392505050565b600080604083850312156118dd578081fd5b6118e7848461187c565b91506118f6846020850161187c565b90509250929050565b60008060008060608587031215611914578182fd5b84356001600160a01b038116811461192a578283fd5b935060208501359250604085013567ffffffffffffffff8082111561194d578384fd5b81870188601f82011261195e578485fd5b803592508183111561196e578485fd5b88602084830101111561197f578485fd5b959894975050602090940194505050565b600080604083850312156119a2578182fd5b6119ac8484611899565b91506118f68460208501611899565b600080604083850312156119cd578182fd5b823567ffffffffffffffff808211156119e4578384fd5b81850186601f8201126119f5578485fd5b8035925081831115611a05578485fd5b6040516020601f8501601f1916820181018481118382101715611a26578788fd5b6040528482528285018101891015611a3c578687fd5b848184018284013793810184019590955250929593013593505050565b600060208284031215611a6a578081fd5b5035919050565b60008060408385031215611a83578182fd5b823591506118f6846020850161187c565b6000808354600180821660008114611ab35760018114611aca57611af9565b60ff198316865260028304607f1686019350611af9565b600283048786526020808720875b83811015611af15781548a820152908501908201611ad8565b505050860193505b509195945050505050565b60008251611b16818460208701611dd1565b9190910192915050565b6001600160a01b0391909116815260200190565b600060018060a01b0386168252846020830152608060408301528351806080840152611b678160a0850160208801611dd1565b921515606083015250601f91909101601f19160160a0019392505050565b6020808252825182820181905260009190848201906040850190845b81811015611bc65783516001600160a01b031683529284019291840191600101611ba1565b50909695505050505050565b901515815260200190565b918252602082015260400190565b6020808252600f908201526e21a7a72324a926a2a22fa2a92927a960891b604082015260600190565b6020808252601a908201527f4f574e45525f444f45535f4e4f545f45584953545f4552524f52000000000000604082015260600190565b6020808252601a908201527f5452414e53414354494f4e5f4e4545445f544f5f554e4c4f434b000000000000604082015260600190565b60208082526018908201527f5452414e53414354494f4e5f4558495354535f4552524f520000000000000000604082015260600190565b60208082526011908201527027a7262cafaba0a62622aa2fa2a92927a960791b604082015260600190565b6020808252601290820152712727aa2fa2ac22a1aaaa22a22fa2a92927a960711b604082015260600190565b60208082526012908201527127aba722a92fa2ac24a9aa29afa2a92927a960711b604082015260600190565b6020808252601390820152722727aa2fa1a7a72324a926a2a22fa2a92927a960691b604082015260600190565b6020808252600e908201526d2727aa2fa72aa6262fa2a92927a960911b604082015260600190565b60208082526017908201527f56414c49445f524551554952454d454e545f4552524f52000000000000000000604082015260600190565b90815260200190565b60005b83811015611dec578181015183820152602001611dd4565b83811115611dfb576000848401525b5050505056fea26469706673582212203d74ff7a7391bb0bef594d5f3bb61dffe44dc359928a4708db3053e543a82a4764736f6c63430006090033", "deployedBytecode": "0x6080604052600436106101855760003560e01c8063a0e67e2b116100d1578063c0af02271161008a578063dc8452cd11610064578063dc8452cd146104f7578063e20056e61461050c578063ee22610b1461052c578063f075fb901461054c576101d4565b8063c0af0227146104ad578063c6427474146104c2578063d74f8edd146104e2576101d4565b8063a0e67e2b14610401578063b5dc40c314610423578063b77bf60014610443578063ba51a6df14610458578063bfa6fddb14610478578063c01a8c841461048d576101d4565b80637065cb481161013e57806386384afc1161011857806386384afc146103635780638b51d13f146103915780638c22d5d3146103b15780639ace38c2146103d1576101d4565b80637065cb481461030357806376ac947a14610323578063784547a714610343576101d4565b8063025e7c2714610213578063173825d91461024957806320ea8d86146102695780632f54bf6e146102895780633411c81c146102b657806354741525146102d6576101d4565b366101d45734156101d257336001600160a01b03167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040516101c99190611dc8565b60405180910390a25b005b34156101d257336001600160a01b03167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040516101c99190611dc8565b34801561021f57600080fd5b5061023361022e366004611a59565b61056c565b6040516102409190611b20565b60405180910390f35b34801561025557600080fd5b506101d26102643660046118a9565b610593565b34801561027557600080fd5b506101d2610284366004611a59565b61071a565b34801561029557600080fd5b506102a96102a43660046118a9565b610809565b6040516102409190611bd2565b3480156102c257600080fd5b506102a96102d1366004611a71565b61081e565b3480156102e257600080fd5b506102f66102f1366004611990565b61083e565b6040516102409190611dc8565b34801561030f57600080fd5b506101d261031e3660046118a9565b6108aa565b34801561032f57600080fd5b506102f661033e366004611a59565b610a04565b34801561034f57600080fd5b506102a961035e366004611a59565b610a16565b34801561036f57600080fd5b5061038361037e366004611a59565b610aa0565b604051610240929190611bdd565b34801561039d57600080fd5b506102f66103ac366004611a59565b610acb565b3480156103bd57600080fd5b506101d26103cc366004611a59565b610b3a565b3480156103dd57600080fd5b506103f16103ec366004611a59565b610b99565b6040516102409493929190611b34565b34801561040d57600080fd5b50610416610c55565b6040516102409190611b85565b34801561042f57600080fd5b5061041661043e366004611a59565b610cb8565b34801561044f57600080fd5b506102f6610e5c565b34801561046457600080fd5b506101d2610473366004611a59565b610e62565b34801561048457600080fd5b506102f6610f04565b34801561049957600080fd5b506101d26104a8366004611a59565b610f0a565b3480156104b957600080fd5b506102f661108c565b3480156104ce57600080fd5b506102f66104dd3660046118ff565b611092565b3480156104ee57600080fd5b506102f6611202565b34801561050357600080fd5b506102f6611207565b34801561051857600080fd5b506101d26105273660046118cb565b61120d565b34801561053857600080fd5b506101d2610547366004611a59565b6113c3565b34801561055857600080fd5b506101d26105673660046119bb565b61155e565b6005818154811061057957fe5b6000918252602090912001546001600160a01b0316905081565b3330146105bb5760405162461bcd60e51b81526004016105b290611cb9565b60405180910390fd5b6001600160a01b038116600090815260036020526040902054819060ff166105f55760405162461bcd60e51b81526004016105b290611d10565b6001600160a01b0382166000908152600360205260408120805460ff191690555b600554600019018110156106c957826001600160a01b03166005828154811061063b57fe5b6000918252602090912001546001600160a01b031614156106c15760058054600019810190811061066857fe5b600091825260209091200154600580546001600160a01b03909216918390811061068e57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506106c9565b600101610616565b5060055460065411156106e2576005546106e290610e62565b6040516001600160a01b038316907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a25050565b3360008181526003602052604090205460ff166107495760405162461bcd60e51b81526004016105b290611d10565b60008281526002602090815260408083203380855292529091205483919060ff166107865760405162461bcd60e51b81526004016105b290611beb565b600084815260016020526040902060030154849060ff16156107ba5760405162461bcd60e51b81526004016105b290611ce4565b6000858152600260209081526040808320338085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35050505050565b60036020526000908152604090205460ff1681565b600260209081526000928352604080842090915290825290205460ff1681565b6000805b6007548110156108a35783801561086b575060008181526001602052604090206003015460ff16155b8061088f575082801561088f575060008181526001602052604090206003015460ff165b1561089b576001820191505b600101610842565b5092915050565b3330146108c95760405162461bcd60e51b81526004016105b290611cb9565b6001600160a01b038116600090815260036020526040902054819060ff16156109045760405162461bcd60e51b81526004016105b290611c14565b816001600160a01b03811661092b5760405162461bcd60e51b81526004016105b290611d69565b600580549050600101600654603282118061094557508181115b8061094e575080155b80610957575081155b156109745760405162461bcd60e51b81526004016105b290611d91565b6001600160a01b038516600081815260036020526040808220805460ff1916600190811790915560058054918201815583527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b03191684179055517ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d9190a25050505050565b60046020526000908152604090205481565b600080805b600554811015610a945760008481526002602052604081206005805491929184908110610a4457fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610a78576001820191505b6006548210610a8c57600192505050610a9b565b600101610a1b565b5060009150505b919050565b60088181548110610aad57fe5b60009182526020909120600290910201805460019091015490915082565b6000805b600554811015610b345760008381526002602052604081206005805491929184908110610af857fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610b2c576001820191505b600101610acf565b50919050565b333014610b595760405162461bcd60e51b81526004016105b290611cb9565b60008190556040517f884d6758bafbcb4b5e2e0393178ca1f3da3dd380a54ce05ab60aa59756db9dc190610b8e908390611dc8565b60405180910390a150565b6001602081815260009283526040928390208054818401546002808401805488516101009882161598909802600019011691909104601f81018690048602870186019097528686526001600160a01b039092169590949293830182828015610c425780601f10610c1757610100808354040283529160200191610c42565b820191906000526020600020905b815481529060010190602001808311610c2557829003601f168201915b5050506003909301549192505060ff1684565b60606005805480602002602001604051908101604052809291908181526020018280548015610cad57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c8f575b505050505090505b90565b600554606090819067ffffffffffffffff81118015610cd657600080fd5b50604051908082528060200260200182016040528015610d00578160200160208202803683370190505b5090506000805b600554811015610dc35760008581526002602052604081206005805491929184908110610d3057fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610dbb5760058181548110610d6a57fe5b9060005260206000200160009054906101000a90046001600160a01b0316838381518110610d9457fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001820191505b600101610d07565b8167ffffffffffffffff81118015610dda57600080fd5b50604051908082528060200260200182016040528015610e04578160200160208202803683370190505b509350600090505b81811015610e5457828181518110610e2057fe5b6020026020010151848281518110610e3457fe5b6001600160a01b0390921660209283029190910190910152600101610e0c565b505050919050565b60075481565b333014610e815760405162461bcd60e51b81526004016105b290611cb9565b600554816032821180610e9357508181115b80610e9c575080155b80610ea5575081155b15610ec25760405162461bcd60e51b81526004016105b290611d91565b60068390556040517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a90610ef7908590611dc8565b60405180910390a1505050565b60005481565b3360008181526003602052604090205460ff16610f395760405162461bcd60e51b81526004016105b290611d10565b60008281526001602052604090205482906001600160a01b0316610f6f5760405162461bcd60e51b81526004016105b290611c82565b60008381526002602090815260408083203380855292529091205484919060ff1615610fad5760405162461bcd60e51b81526004016105b290611d3c565b6000858152600260209081526040808320338085529252808320805460ff191660011790555187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a361100185610a16565b80156110195750600085815260046020526040902054155b801561102b5750611029856115e2565b155b15611085576000805486825260046020526040918290204290910190819055905186907f280af6a3ba059a74f0e894262aa07f2c4d0de1e231882263c0d7dcda111b1a449061107b908490611dc8565b60405180910390a2505b5050505050565b60085490565b3360008181526003602052604081205490919060ff166110c45760405162461bcd60e51b81526004016105b290611d10565b856001600160a01b0381166110eb5760405162461bcd60e51b81526004016105b290611d69565b60075492506040518060800160405280886001600160a01b0316815260200187815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093855250505060209182018190528581526001808352604091829020845181546001600160a01b0319166001600160a01b039091161781558484015191810191909155908301518051919261119f926002850192909101906117cd565b50606091909101516003909101805460ff191691151591909117905560078054600101905560405183907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a26111f883610f0a565b5050949350505050565b603281565b60065481565b33301461122c5760405162461bcd60e51b81526004016105b290611cb9565b6001600160a01b038216600090815260036020526040902054829060ff166112665760405162461bcd60e51b81526004016105b290611d10565b6001600160a01b038216600090815260036020526040902054829060ff16156112a15760405162461bcd60e51b81526004016105b290611c14565b60005b60055481101561132957846001600160a01b0316600582815481106112c557fe5b6000918252602090912001546001600160a01b031614156113215783600582815481106112ee57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611329565b6001016112a4565b506001600160a01b03808516600081815260036020526040808220805460ff1990811690915593871682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a26040516001600160a01b038416907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a250505050565b3360008181526003602052604090205460ff166113f25760405162461bcd60e51b81526004016105b290611d10565b600082815260016020526040902060030154829060ff16156114265760405162461bcd60e51b81526004016105b290611ce4565b6000838152600460205260409020544210156114545760405162461bcd60e51b81526004016105b290611c4b565b61145d83610a16565b1561155957600083815260016020819052604080832060038101805460ff19168417905580549281015491519093926001600160a01b031691906114a5906002860190611a94565b60006040518083038185875af1925050503d80600081146114e2576040519150601f19603f3d011682016040523d82523d6000602084013e6114e7565b606091505b5050905080156115215760405185907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2611085565b60405185907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a250600301805460ff191690555b505050565b33301461157d5760405162461bcd60e51b81526004016105b290611cb9565b600860405180604001604052808460405160200161159b9190611b04565b60408051601f198184030181529190528051602091820120825290810193909352815460018181018455600093845292849020825160029092020190815592015191015550565b60008181526001602081815260408084206002908101805483519581161561010002600019011691909104601f8101849004840285018401909252818452606093929091908301828280156116785780601f1061164d57610100808354040283529160200191611678565b820191906000526020600020905b81548152906001019060200180831161165b57829003601f168201915b50939450600093505050505b600854811015610a945761169661184b565b600882815481106116a357fe5b9060005260206000209060020201604051806040016040529081600082015481526020016001820154815250509050806020015160040183511480156116eb57506004835110155b801561171d5750826000815181106116ff57fe5b602091010151815160001a60f81b6001600160f81b03199081169116145b801561174f57508260018151811061173157fe5b602091010151815160011a60f81b6001600160f81b03199081169116145b801561178157508260028151811061176357fe5b602091010151815160021a60f81b6001600160f81b03199081169116145b80156117b357508260038151811061179557fe5b602091010151815160031a60f81b6001600160f81b03199081169116145b156117c45760019350505050610a9b565b50600101611684565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061180e57805160ff191683800117855561183b565b8280016001018555821561183b579182015b8281111561183b578251825591602001919060010190611820565b50611847929150611862565b5090565b604080518082019091526000808252602082015290565b610cb591905b808211156118475760008155600101611868565b80356001600160a01b038116811461189357600080fd5b92915050565b8035801515811461189357600080fd5b6000602082840312156118ba578081fd5b6118c4838361187c565b9392505050565b600080604083850312156118dd578081fd5b6118e7848461187c565b91506118f6846020850161187c565b90509250929050565b60008060008060608587031215611914578182fd5b84356001600160a01b038116811461192a578283fd5b935060208501359250604085013567ffffffffffffffff8082111561194d578384fd5b81870188601f82011261195e578485fd5b803592508183111561196e578485fd5b88602084830101111561197f578485fd5b959894975050602090940194505050565b600080604083850312156119a2578182fd5b6119ac8484611899565b91506118f68460208501611899565b600080604083850312156119cd578182fd5b823567ffffffffffffffff808211156119e4578384fd5b81850186601f8201126119f5578485fd5b8035925081831115611a05578485fd5b6040516020601f8501601f1916820181018481118382101715611a26578788fd5b6040528482528285018101891015611a3c578687fd5b848184018284013793810184019590955250929593013593505050565b600060208284031215611a6a578081fd5b5035919050565b60008060408385031215611a83578182fd5b823591506118f6846020850161187c565b6000808354600180821660008114611ab35760018114611aca57611af9565b60ff198316865260028304607f1686019350611af9565b600283048786526020808720875b83811015611af15781548a820152908501908201611ad8565b505050860193505b509195945050505050565b60008251611b16818460208701611dd1565b9190910192915050565b6001600160a01b0391909116815260200190565b600060018060a01b0386168252846020830152608060408301528351806080840152611b678160a0850160208801611dd1565b921515606083015250601f91909101601f19160160a0019392505050565b6020808252825182820181905260009190848201906040850190845b81811015611bc65783516001600160a01b031683529284019291840191600101611ba1565b50909695505050505050565b901515815260200190565b918252602082015260400190565b6020808252600f908201526e21a7a72324a926a2a22fa2a92927a960891b604082015260600190565b6020808252601a908201527f4f574e45525f444f45535f4e4f545f45584953545f4552524f52000000000000604082015260600190565b6020808252601a908201527f5452414e53414354494f4e5f4e4545445f544f5f554e4c4f434b000000000000604082015260600190565b60208082526018908201527f5452414e53414354494f4e5f4558495354535f4552524f520000000000000000604082015260600190565b60208082526011908201527027a7262cafaba0a62622aa2fa2a92927a960791b604082015260600190565b6020808252601290820152712727aa2fa2ac22a1aaaa22a22fa2a92927a960711b604082015260600190565b60208082526012908201527127aba722a92fa2ac24a9aa29afa2a92927a960711b604082015260600190565b6020808252601390820152722727aa2fa1a7a72324a926a2a22fa2a92927a960691b604082015260600190565b6020808252600e908201526d2727aa2fa72aa6262fa2a92927a960911b604082015260600190565b60208082526017908201527f56414c49445f524551554952454d454e545f4552524f52000000000000000000604082015260600190565b90815260200190565b60005b83811015611dec578181015183820152602001611dd4565b83811115611dfb576000848401525b5050505056fea26469706673582212203d74ff7a7391bb0bef594d5f3bb61dffe44dc359928a4708db3053e543a82a4764736f6c63430006090033", "immutableReferences": {}, "sourceMap": "204:13524:16:-:0;;;325:5;296:34;;3577:1058;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3674:7;:14;3690:9;288:2;2862:10;:28;:66;;;;2918:10;2906:9;:22;2862:66;:96;;;-1:-1:-1;2944:14:16;;2862:96;:127;;;-1:-1:-1;2974:15:16;;2862:127;2845:188;;;3000:33;;-1:-1:-1;;;3000:33:16;;;;;;;;;;;;;;;;2845:188;3720:9:::1;3715:217;3739:7;:14;3735:1;:18;3715:217;;;3778:7;:19;3786:7;3794:1;3786:10;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;3778:19:16::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;3778:19:16;;::::1;;::::0;:47:::1;;;3823:1;-1:-1:-1::0;;;;;3801:24:16::1;:7;3809:1;3801:10;;;;;;;;;;;;;;-1:-1:-1::0;;;;;3801:24:16::1;;3778:47;3774:107;;;3845:21;;-1:-1:-1::0;;;3845:21:16::1;;;;;;;;3774:107;3917:4;3895:7;:19;3903:7;3911:1;3903:10;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;3895:19:16::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;3895:19:16;:26;;-1:-1:-1;;3895:26:16::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;3755:3:16::1;3715:217;;;-1:-1:-1::0;3942:16:16;;::::1;::::0;:6:::1;::::0;:16:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;3968:8:16::1;:20:::0;;;4070:141:::1;::::0;;;;::::1;::::0;;;4037:14:::1;::::0;4070:141;4122:36:::1;::::0;;;::::1;;;;::::0;;-1:-1:-1;;4122:36:16;;::::1;::::0;;;;;;4112:47;;4122:36:::1;4112:47:::0;;::::1;::::0;4070:141;;4195:1:::1;4070:141:::0;;::::1;::::0;;;4037:184;;::::1;::::0;;::::1;::::0;;;;;;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;;::::1;::::0;;;;4264:139;;;;::::1;::::0;;;4231:14:::1;::::0;4264:139;4316:33:::1;::::0;;;::::1;;;;::::0;;-1:-1:-1;;4316:33:16;;::::1;::::0;;;;;;4306:44;;4316:33:::1;4306:44:::0;;::::1;::::0;4264:139;;;;::::1;::::0;;;4231:182;;::::1;::::0;;::::1;::::0;;-1:-1:-1;4231:182:16;;;;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;;;;::::1;::::0;4456:162;;;;::::1;::::0;;;4423:14:::1;::::0;4456:162;4508:56:::1;::::0;;;::::1;;;;::::0;;-1:-1:-1;;4508:56:16;;::::1;::::0;;;;;;4498:67;;4508:56:::1;4498:67:::0;;::::1;::::0;4456:162;;;;::::1;::::0;;;;4423:205;;::::1;::::0;;::::1;::::0;;-1:-1:-1;4423:205:16;;;;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;;::::1;::::0;-1:-1:-1;204:13524:16;;-1:-1:-1;;;204:13524:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;204:13524:16;-1:-1:-1;;;;;204:13524:16;;;;;;;;;;;-1:-1:-1;204:13524:16;;;;;;;-1:-1:-1;204:13524:16;;;-1:-1:-1;204:13524:16;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;204:13524:16;;;;;;;;;:::o;5:134:-1:-;83:13;;-1:-1;;;;;6429:54;;6633:35;;6623:2;;6682:1;;6672:12;6623:2;68:71;;;;;1035:528;;;1192:2;1180:9;1171:7;1167:23;1163:32;1160:2;;;-1:-1;;1198:12;1160:2;1243:24;;-1:-1;;;;;1276:30;;;1273:2;;;-1:-1;;1309:12;1273:2;1411:6;1400:9;1396:22;292:3;285:4;277:6;273:17;269:27;259:2;;-1:-1;;300:12;259:2;340:6;334:13;320:27;;1287:18;5783:6;5780:30;5777:2;;;-1:-1;;5813:12;5777:2;5858:4;;;;5850:6;5846:17;362:80;5858:4;5846:17;5911:15;362:80;;;470:21;;;527:14;;;;502:17;;;607:27;;;;;604:36;-1:-1;601:2;;;-1:-1;;643:12;601:2;-1:-1;669:10;;663:217;688:6;685:1;682:13;663:217;;;768:48;812:3;800:10;768:48;;;756:61;;710:1;703:9;;;;;831:14;;;;859;;663:217;;;-1:-1;1515:22;;;;972:13;1329:99;;972:13;;-1:-1;;;;;;;1154:409;3359:381;-1:-1;;;1847:39;;1831:2;1905:12;;3548:192;3747:381;2548:34;2528:55;;-1:-1;;;2612:2;2603:12;;2596:28;2512:2;2643:12;;3936:192;4135:381;-1:-1;;;2946:36;;2930:2;3001:12;;4324:192;4523:416;4723:2;4737:47;;;2156:2;4708:18;;;6047:19;-1:-1;;;6087:14;;;2172:34;2225:12;;;4694:245;4946:416;5146:2;5160:47;;;3252:2;5131:18;;;6047:19;3288:25;6087:14;;;3268:46;3333:12;;;5117:245;5369:256;5431:2;5425:9;5457:17;;;-1:-1;;;;;5517:34;;5553:22;;;5514:62;5511:2;;;5589:1;;5579:12;5511:2;5431;5598:22;5409:216;;-1:-1;5409:216;;204:13524:16;;;;;;", "deployedSourceMap": "204:13524:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3286:9;:13;3282:79;;3328:10;-1:-1:-1;;;;;3320:30:16;;3340:9;3320:30;;;;;;;;;;;;;;;3282:79;204:13524;;3158:9;:13;3154:79;;3200:10;-1:-1:-1;;;;;3192:30:16;;3212:9;3192:30;;;;;;;1216:23;;;;;;;;;;-1:-1:-1;1216:23:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;5306:465;;;;;;;;;;-1:-1:-1;5306:465:16;;;;;;;;:::i;9958:301::-;;;;;;;;;;-1:-1:-1;9958:301:16;;;;;;;;:::i;1118:39::-;;;;;;;;;;-1:-1:-1;1118:39:16;;;;;;;;:::i;:::-;;;;;;;;1047:65;;;;;;;;;;-1:-1:-1;1047:65:16;;;;;;;;:::i;12379:340::-;;;;;;;;;;-1:-1:-1;12379:340:16;;;;;;;;:::i;:::-;;;;;;;;4892:284;;;;;;;;;;-1:-1:-1;4892:284:16;;;;;;;;:::i;1163:46::-;;;;;;;;;;-1:-1:-1;1163:46:16;;;;;;;;:::i;11270:375::-;;;;;;;;;;-1:-1:-1;11270:375:16;;;;;;;;:::i;1579:37::-;;;;;;;;;;-1:-1:-1;1579:37:16;;;;;;;;:::i;:::-;;;;;;;;;11843:263;;;;;;;;;;-1:-1:-1;11843:263:16;;;;;;;;:::i;7055:158::-;;;;;;;;;;-1:-1:-1;7055:158:16;;;;;;;;:::i;990:51::-;;;;;;;;;;-1:-1:-1;990:51:16;;;;;;;;:::i;:::-;;;;;;;;;;;12810:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;13102:624;;;;;;;;;;-1:-1:-1;13102:624:16;;;;;;;;:::i;1274:31::-;;;;;;;;;;;;;:::i;6635:215::-;;;;;;;;;;-1:-1:-1;6635:215:16;;;;;;;;:::i;296:34::-;;;;;;;;;;;;;:::i;8146:654::-;;;;;;;;;;-1:-1:-1;8146:654:16;;;;;;;;:::i;4641:117::-;;;;;;;;;;;;;:::i;7490:543::-;;;;;;;;;;-1:-1:-1;7490:543:16;;;;;;;;:::i;246:44::-;;;;;;;;;;;;;:::i;1245:23::-;;;;;;;;;;;;;:::i;5976:481::-;;;;;;;;;;-1:-1:-1;5976:481:16;;;;;;;;:::i;10380:733::-;;;;;;;;;;-1:-1:-1;10380:733:16;;;;;;;;:::i;9525:302::-;;;;;;;;;;-1:-1:-1;9525:302:16;;;;;;;;:::i;1216:23::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1216:23:16;;-1:-1:-1;1216:23:16;:::o;5306:465::-;1659:10;1681:4;1659:27;1655:60;;1688:27;;-1:-1:-1;;;1688:27:16;;;;;;;;;;;;;;;;1655:60;-1:-1:-1;;;;;1922:14:16;::::1;;::::0;;;:7:::1;:14;::::0;;;;;5374:5;;1922:14:::1;;1917:49;;1938:28;;-1:-1:-1::0;;;1938:28:16::1;;;;;;;;1917:49;-1:-1:-1::0;;;;;5391:14:16;::::2;5408:5;5391:14:::0;;;:7:::2;:14;::::0;;;;:22;;-1:-1:-1;;5391:22:16::2;::::0;;5423:189:::2;5447:6;:13:::0;-1:-1:-1;;5447:17:16;5443:21;::::2;5423:189;;;5502:5;-1:-1:-1::0;;;;;5489:18:16::2;:6;5496:1;5489:9;;;;;;;;;::::0;;;::::2;::::0;;;::::2;::::0;-1:-1:-1;;;;;5489:9:16::2;:18;5485:117;;;5539:6;5546:13:::0;;-1:-1:-1;;5546:17:16;;;5539:25;::::2;;;;;;::::0;;;::::2;::::0;;;::::2;::::0;5527:6:::2;:9:::0;;-1:-1:-1;;;;;5539:25:16;;::::2;::::0;5534:1;;5527:9;::::2;;;;;;;;;;;;;:37;;;;;-1:-1:-1::0;;;;;5527:37:16::2;;;;;-1:-1:-1::0;;;;;5527:37:16::2;;;;;;5582:5;;5485:117;5466:3;;5423:189;;;-1:-1:-1::0;5658:6:16::2;:13:::0;5647:8:::2;::::0;:24:::2;5643:87;;;5705:6;:13:::0;5687:32:::2;::::0;:17:::2;:32::i;:::-;5745:19;::::0;-1:-1:-1;;;;;5745:19:16;::::2;::::0;::::2;::::0;;;::::2;1725:1:::1;5306:465:::0;:::o;9958:301::-;10046:10;1922:14;;;;:7;:14;;;;;;;;1917:49;;1938:28;;-1:-1:-1;;;1938:28:16;;;;;;;;1917:49;2251:28:::1;::::0;;;:13:::1;:28;::::0;;;;;;;10091:10:::1;2251:35:::0;;;;;;;;;10076:13;;10091:10;2251:35:::1;;2246:67;;2288:25;;-1:-1:-1::0;;;2288:25:16::1;;;;;;;;2246:67;2559:27:::2;::::0;;;:12:::2;:27;::::0;;;;:36:::2;;::::0;10123:13;;2559:36:::2;;2555:70;;;2597:28;;-1:-1:-1::0;;;2597:28:16::2;;;;;;;;2555:70;10195:5:::3;10152:28:::0;;;:13:::3;:28;::::0;;;;;;;10181:10:::3;10152:40:::0;;;;;;;;:48;;-1:-1:-1;;10152:48:16::3;::::0;;10215:37;10166:13;;10215:37:::3;::::0;::::3;2323:1:::2;1976::::1;;9958:301:::0;;:::o;1118:39::-;;;;;;;;;;;;;;;:::o;1047:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12379:340::-;12484:13;;12513:200;12537:16;;12533:1;:20;12513:200;;;12579:7;:36;;;;-1:-1:-1;12591:15:16;;;;:12;:15;;;;;:24;;;;;12590:25;12579:36;12578:80;;;;12621:8;:36;;;;-1:-1:-1;12633:15:16;;;;:12;:15;;;;;:24;;;;;12621:36;12574:129;;;12687:1;12678:10;;;;12574:129;12555:3;;12513:200;;;;12379:340;;;;:::o;4892:284::-;1659:10;1681:4;1659:27;1655:60;;1688:27;;-1:-1:-1;;;1688:27:16;;;;;;;;1655:60;-1:-1:-1;;;;;1795:14:16;::::1;;::::0;;;:7:::1;:14;::::0;;;;;4987:5;;1795:14:::1;;1791:56;;;1811:36;;-1:-1:-1::0;;;1811:36:16::1;;;;;;;;1791:56;5010:5:::0;-1:-1:-1;;;;;2698:22:16;::::2;2694:52;;2722:24;;-1:-1:-1::0;;;2722:24:16::2;;;;;;;;2694:52;5042:6:::3;:13;;;;5058:1;5042:17;5061:8;;288:2;2862:10;:28;:66;;;;2918:10;2906:9;:22;2862:66;:96;;;-1:-1:-1::0;2944:14:16;;2862:96:::3;:127;;;-1:-1:-1::0;2974:15:16;;2862:127:::3;2845:188;;;3000:33;;-1:-1:-1::0;;;3000:33:16::3;;;;;;;;2845:188;-1:-1:-1::0;;;;;5085:14:16;::::4;;::::0;;;:7:::4;:14;::::0;;;;;:21;;-1:-1:-1;;5085:21:16::4;5102:4;5085:21:::0;;::::4;::::0;;;5116:6:::4;:18:::0;;;;::::4;::::0;;;;;::::4;::::0;;-1:-1:-1;;;;;;5116:18:16::4;::::0;::::4;::::0;;5149:20;::::4;::::0;5085:14;5149:20:::4;2756:1:::3;;1857::::2;1725::::1;4892:284:::0;:::o;1163:46::-;;;;;;;;;;;;;:::o;11270:375::-;11335:4;;;11379:237;11403:6;:13;11399:17;;11379:237;;;11441:28;;;;:13;:28;;;;;11470:6;:9;;11441:28;;;11477:1;;11470:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11470:9:16;11441:39;;;;;;;;;;;;;;;11437:88;;;11509:1;11500:10;;;;11437:88;11552:8;;11543:5;:17;11539:67;;11587:4;11580:11;;;;;;11539:67;11418:3;;11379:237;;;;11633:5;11626:12;;;11270:375;;;;:::o;1579:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1579:37:16;:::o;11843:263::-;11919:13;;11944:156;11968:6;:13;11964:17;;11944:156;;;12006:28;;;;:13;:28;;;;;12035:6;:9;;12006:28;;;12042:1;;12035:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12035:9:16;12006:39;;;;;;;;;;;;;;;12002:88;;;12074:1;12065:10;;;;12002:88;11983:3;;11944:156;;;;11843:263;;;:::o;7055:158::-;1659:10;1681:4;1659:27;1655:60;;1688:27;;-1:-1:-1;;;1688:27:16;;;;;;;;1655:60;7134:11:::1;:26:::0;;;7175:31:::1;::::0;::::1;::::0;::::1;::::0;7148:12;;7175:31:::1;;;;;;;;;;7055:158:::0;:::o;990:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;990:51:16;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;990:51:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;990:51:16;;;;;;;-1:-1:-1;;990:51:16;;;:::o;12810:92::-;12854:16;12889:6;12882:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12882:13:16;;;;;;;;;;;;;;;;;;;;;;;12810:92;;:::o;13102:624::-;13296:6;:13;13198:31;;;;13282:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13282:28:16;-1:-1:-1;13245:65:16;-1:-1:-1;13320:13:16;;13367:202;13383:6;:13;13379:17;;13367:202;;;13421:28;;;;:13;:28;;;;;13450:6;:9;;13421:28;;;13457:1;;13450:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13450:9:16;13421:39;;;;;;;;;;;;;;;13417:142;;;13507:6;13514:1;13507:9;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13507:9:16;13480:17;13498:5;13480:24;;;;;;;;;;;;;:36;-1:-1:-1;;;;;13480:36:16;;;-1:-1:-1;;;;;13480:36:16;;;;;13543:1;13534:10;;;;13417:142;13398:3;;13367:202;;;13610:5;13596:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13596:20:16;;13579:37;;13636:1;13632:5;;13627:93;13643:5;13639:1;:9;13627:93;;;13689:17;13707:1;13689:20;;;;;;;;;;;;;;13669:14;13684:1;13669:17;;;;;;;;-1:-1:-1;;;;;13669:40:16;;;:17;;;;;;;;;;;:40;13650:3;;13627:93;;;13102:624;;;;;;:::o;1274:31::-;;;;:::o;6635:215::-;1659:10;1681:4;1659:27;1655:60;;1688:27;;-1:-1:-1;;;1688:27:16;;;;;;;;1655:60;6740:6:::1;:13:::0;6755:9;288:2:::1;2862:28:::0;::::1;::::0;:66:::1;;;2918:10;2906:9;:22;2862:66;:96;;;-1:-1:-1::0;2944:14:16;;2862:96:::1;:127;;;-1:-1:-1::0;2974:15:16;;2862:127:::1;2845:188;;;3000:33;;-1:-1:-1::0;;;3000:33:16::1;;;;;;;;2845:188;6780:8:::2;:20:::0;;;6815:28:::2;::::0;::::2;::::0;::::2;::::0;6791:9;;6815:28:::2;;;;;;;;;;1725:1:::1;;6635:215:::0;:::o;296:34::-;;;;:::o;8146:654::-;8232:10;1922:14;;;;:7;:14;;;;;;;;1917:49;;1938:28;;-1:-1:-1;;;1938:28:16;;;;;;;;1917:49;2105:1:::1;2054:27:::0;;;:12:::1;:27;::::0;;;;:39;8270:13;;-1:-1:-1;;;;;2054:39:16::1;2050:105;;2121:34;;-1:-1:-1::0;;;2121:34:16::1;;;;;;;;2050:105;2411:28:::2;::::0;;;:13:::2;:28;::::0;;;;;;;8321:10:::2;2411:35:::0;;;;;;;;;8306:13;;8321:10;2411:35:::2;;2407:70;;;2448:29;;-1:-1:-1::0;;;2448:29:16::2;;;;;;;;2407:70;8347:28:::3;::::0;;;:13:::3;:28;::::0;;;;;;;8376:10:::3;8347:40:::0;;;;;;;;:47;;-1:-1:-1;;8347:47:16::3;8390:4;8347:47;::::0;;8409:39;8361:13;;8409:39:::3;::::0;::::3;8476:26;8488:13;8476:11;:26::i;:::-;:73;;;;-1:-1:-1::0;8518:26:16::3;::::0;;;:11:::3;:26;::::0;;;;;:31;8476:73:::3;:120;;;;;8566:30;8582:13;8566:15;:30::i;:::-;8565:31;8476:120;8459:335;;;8621:18;8660:11:::0;;8685:26;;;:11:::3;:26;::::0;;;;;;8642:15:::3;:29:::0;;::::3;8685:39:::0;;;;8743:40;;8697:13;;8743:40:::3;::::0;::::3;::::0;8642:29;;8743:40:::3;;;;;;;;;;8459:335;;2165:1:::2;;1976::::1;8146:654:::0;;:::o;4641:117::-;4730:14;:21;4641:117;:::o;7490:543::-;7625:10;7667:21;1922:14;;;:7;:14;;;;;;7667:21;;7625:10;1922:14;;1917:49;;1938:28;;-1:-1:-1;;;1938:28:16;;;;;;;;1917:49;7645:11;-1:-1:-1;;;;;2698:22:16;::::1;2694:52;;2722:24;;-1:-1:-1::0;;;2722:24:16::1;;;;;;;;2694:52;7716:16:::2;;7700:32;;7772:140;;;;;;;;7811:11;-1:-1:-1::0;;;;;7772:140:16::2;;;;;7843:5;7772:140;;;;7868:4;;7772:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;::::0;;;-1:-1:-1;7772:140:16;;;-1:-1:-1;;;7772:140:16::2;::::0;;::::2;::::0;;;7742:27;;;7772:140;7742:27;;;;;;;;:170;;;;-1:-1:-1;;;;;;7742:170:16::2;-1:-1:-1::0;;;;;7742:170:16;;::::2;;::::0;;;;::::2;::::0;;;::::2;::::0;;;;;;::::2;::::0;;;:27;;:170:::2;::::0;::::2;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;-1:-1:-1::0;7742:170:16::2;::::0;;;::::2;::::0;::::2;::::0;;::::2;::::0;;-1:-1:-1;;7742:170:16::2;::::0;::::2;;::::0;;;::::2;::::0;;7922:16:::2;:21:::0;;-1:-1:-1;7922:21:16::2;::::0;;7958:25:::2;::::0;7969:13;;7958:25:::2;::::0;-1:-1:-1;;7958:25:16::2;7993:33;8012:13;7993:18;:33::i;:::-;1976:1:::1;7490:543:::0;;;;;;;:::o;246:44::-;288:2;246:44;:::o;1245:23::-;;;;:::o;5976:481::-;1659:10;1681:4;1659:27;1655:60;;1688:27;;-1:-1:-1;;;1688:27:16;;;;;;;;1655:60;-1:-1:-1;;;;;1922:14:16;::::1;;::::0;;;:7:::1;:14;::::0;;;;;6087:5;;1922:14:::1;;1917:49;;1938:28;;-1:-1:-1::0;;;1938:28:16::1;;;;;;;;1917:49;-1:-1:-1::0;;;;;1795:14:16;::::2;;::::0;;;:7:::2;:14;::::0;;;;;6120:8;;1795:14:::2;;1791:56;;;1811:36;;-1:-1:-1::0;;;1811:36:16::2;;;;;;;;1791:56;6149:9:::3;6144:168;6168:6;:13:::0;6164:17;::::3;6144:168;;;6219:5;-1:-1:-1::0;;;;;6206:18:16::3;:6;6213:1;6206:9;;;;;;;;;::::0;;;::::3;::::0;;;::::3;::::0;-1:-1:-1;;;;;6206:9:16::3;:18;6202:100;;;6256:8;6244:6;6251:1;6244:9;;;;;;;;;;;;;;;;:20;;;;;-1:-1:-1::0;;;;;6244:20:16::3;;;;;-1:-1:-1::0;;;;;6244:20:16::3;;;;;;6282:5;;6202:100;6183:3;;6144:168;;;-1:-1:-1::0;;;;;;6322:14:16;;::::3;6339:5;6322:14:::0;;;:7:::3;:14;::::0;;;;;:22;;-1:-1:-1;;6322:22:16;;::::3;::::0;;;6354:17;;::::3;::::0;;;;;:24;;;;::::3;6322:22:::0;6354:24:::3;::::0;;;6393:19;;6322:14;;6393:19:::3;::::0;::::3;6427:23;::::0;-1:-1:-1;;;;;6427:23:16;::::3;::::0;::::3;::::0;;;::::3;1976:1:::2;1725::::1;5976:481:::0;;:::o;10380:733::-;10468:10;1922:14;;;;:7;:14;;;;;;;;1917:49;;1938:28;;-1:-1:-1;;;1938:28:16;;;;;;;;1917:49;2559:27:::1;::::0;;;:12:::1;:27;::::0;;;;:36:::1;;::::0;10500:13;;2559:36:::1;;2555:70;;;2597:28;;-1:-1:-1::0;;;2597:28:16::1;;;;;;;;2555:70;10556:26:::2;::::0;;;:11:::2;:26;::::0;;;;;10537:15:::2;:45;;10529:84;;;;-1:-1:-1::0;;;10529:84:16::2;;;;;;;;;10628:26;10640:13;10628:11;:26::i;:::-;10624:483;;;10670:31;10704:27:::0;;;:12:::2;:27;::::0;;;;;;;10745:20:::2;::::0;::::2;:27:::0;;-1:-1:-1;;10745:27:16::2;::::0;::::2;::::0;;10805:23;;10841:17;;::::2;::::0;10805:102;;10704:27;;10670:31;-1:-1:-1;;;;;10805:23:16::2;::::0;10841:17;10805:102:::2;::::0;10877:16:::2;::::0;::::2;::::0;10805:102:::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10786:121;;;10925:7;10921:176;;;10939:24;::::0;10949:13;;10939:24:::2;::::0;;;::::2;10921:176;;;11005:31;::::0;11022:13;;11005:31:::2;::::0;;;::::2;-1:-1:-1::0;11054:20:16::2;;:28:::0;;-1:-1:-1;;11054:28:16::2;::::0;;10624:483:::2;1976:1:::1;10380:733:::0;;:::o;9525:302::-;1659:10;1681:4;1659:27;1655:60;;1688:27;;-1:-1:-1;;;1688:27:16;;;;;;;;1655:60;9630:14:::1;9663:147;;;;;;;;9732:8;9715:26;;;;;;;;;;;::::0;;-1:-1:-1;;9715:26:16;;::::1;::::0;;;;;;9705:37;;9715:26:::1;9705:37:::0;;::::1;::::0;9663:147;;;;::::1;::::0;;;;9630:190;;::::1;::::0;;::::1;::::0;;-1:-1:-1;9630:190:16;;;;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;;::::1;::::0;-1:-1:-1;9525:302:16:o;8806:713::-;8877:4;8913:27;;;:12;:27;;;;;;;;:32;;;;8893:52;;;;;;;;;;-1:-1:-1;;8893:52:16;;;;;;;;;;;;;;;;;;;;;;;;:17;;:52;8913:32;;8893:52;;;8913:32;8893:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8893:52:16;;-1:-1:-1;8961:9:16;;-1:-1:-1;;;;8956:534:16;8980:14;:21;8976:25;;8956:534;;;9022:34;;:::i;:::-;9059:14;9074:1;9059:17;;;;;;;;;;;;;;;;;;9022:54;;;;;;;;;;;;;;;;;;;;;;;;;;;9127:13;:30;;;9160:1;9127:34;9112:4;:11;:49;:85;;;;;9196:1;9181:4;:11;:16;;9112:85;:141;;;;;9246:4;9251:1;9246:7;;;;;;;;;;;;;9217:22;;;:25;;;-1:-1:-1;;;;;;9217:36:16;;;9246:7;;9217:36;9112:141;:197;;;;;9302:4;9307:1;9302:7;;;;;;;;;;;;;9273:22;;9296:1;9273:25;;;-1:-1:-1;;;;;;9273:36:16;;;9302:7;;9273:36;9112:197;:253;;;;;9358:4;9363:1;9358:7;;;;;;;;;;;;;9329:22;;9352:1;9329:25;;;-1:-1:-1;;;;;;9329:36:16;;;9358:7;;9329:36;9112:253;:309;;;;;9414:4;9419:1;9414:7;;;;;;;;;;;;;9385:22;;9408:1;9385:25;;;-1:-1:-1;;;;;;9385:36:16;;;9414:7;;9385:36;9112:309;9091:389;;;9461:4;9454:11;;;;;;;9091:389;-1:-1:-1;9003:3:16;;8956:534;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;5:130;72:20;;-1:-1;;;;;19741:54;;20481:35;;20471:2;;20530:1;;20520:12;20471:2;57:78;;;;;142:124;206:20;;19574:13;;19567:21;20602:32;;20592:2;;20648:1;;20638:12;1219:241;;1323:2;1311:9;1302:7;1298:23;1294:32;1291:2;;;-1:-1;;1329:12;1291:2;1391:53;1436:7;1412:22;1391:53;;;1381:63;1285:175;-1:-1;;;1285:175;1467:366;;;1588:2;1576:9;1567:7;1563:23;1559:32;1556:2;;;-1:-1;;1594:12;1556:2;1656:53;1701:7;1677:22;1656:53;;;1646:63;;1764:53;1809:7;1746:2;1789:9;1785:22;1764:53;;;1754:63;;1550:283;;;;;;1840:615;;;;;1997:2;1985:9;1976:7;1972:23;1968:32;1965:2;;;-1:-1;;2003:12;1965:2;72:20;;-1:-1;;;;;19741:54;;20481:35;;20471:2;;-1:-1;;20520:12;20471:2;2055:63;-1:-1;2155:2;2194:22;;1149:20;;-1:-1;2291:2;2276:18;;2263:32;2315:18;2304:30;;;2301:2;;;-1:-1;;2337:12;2301:2;2422:6;2411:9;2407:22;401:3;394:4;386:6;382:17;378:27;368:2;;-1:-1;;409:12;368:2;452:6;439:20;429:30;;2315:18;471:6;468:30;465:2;;;-1:-1;;501:12;465:2;596:3;2155:2;576:17;537:6;562:32;;559:41;556:2;;;-1:-1;;603:12;556:2;1959:496;;;;-1:-1;;2155:2;533:17;;;;-1:-1;;;1959:496;2462:354;;;2577:2;2565:9;2556:7;2552:23;2548:32;2545:2;;;-1:-1;;2583:12;2545:2;2645:50;2687:7;2663:22;2645:50;;;2635:60;;2750:50;2792:7;2732:2;2772:9;2768:22;2750:50;;2823:472;;;2954:2;2942:9;2933:7;2929:23;2925:32;2922:2;;;-1:-1;;2960:12;2922:2;3018:17;3005:31;3056:18;;3048:6;3045:30;3042:2;;;-1:-1;;3078:12;3042:2;3154:6;3143:9;3139:22;734:3;727:4;719:6;715:17;711:27;701:2;;-1:-1;;742:12;701:2;789:6;776:20;762:34;;3056:18;17542:6;17539:30;17536:2;;;-1:-1;;17572:12;17536:2;2954;17199:9;17713:4;17645:9;17626:17;;-1:-1;;17622:33;17231:17;;;;17291:34;;;17327:22;;;17288:62;17285:2;;;-1:-1;;17353:12;17285:2;2954;17372:22;882:21;;;982:16;;;;;979:25;-1:-1;976:2;;;-1:-1;;1007:12;976:2;19968:6;17713:4;924:6;920:17;17713:4;958:5;954:16;19945:30;20006:16;;;;;19999:27;;;;-1:-1;958:5;;3247:22;;1149:20;;-1:-1;;;2916:379;3302:241;;3406:2;3394:9;3385:7;3381:23;3377:32;3374:2;;;-1:-1;;3412:12;3374:2;-1:-1;1149:20;;3368:175;-1:-1;3368:175;3550:366;;;3671:2;3659:9;3650:7;3646:23;3642:32;3639:2;;;-1:-1;;3677:12;3639:2;3760:22;1149:20;3729:63;;3847:53;3892:7;3829:2;3872:9;3868:22;3847:53;;10332:265;;-1:-1;5803:5;5797:12;5837:1;;5826:9;5822:17;5850:1;5845:267;;;;6123:1;6118:423;;;;5815:726;;5845:267;-1:-1;;6049:25;;6037:38;;5919:1;5904:17;;5923:4;5900:28;6089:16;;;-1:-1;5845:267;;6118:423;6187:1;6176:9;6172:17;17997:3;-1:-1;17987:14;18029:4;;-1:-1;18016:18;-1:-1;6374:130;6388:6;6385:1;6382:13;6374:130;;;6447:14;;6434:11;;;6427:35;6481:15;;;;6403:12;;6374:130;;;-1:-1;;;6518:16;;;-1:-1;5815:726;-1:-1;10582:10;;10463:134;-1:-1;;;;;10463:134;10604:275;;6718:5;18160:12;6830:52;6875:6;6870:3;6863:4;6856:5;6852:16;6830:52;;;6894:16;;;;;10740:139;-1:-1;;10740:139;10886:222;-1:-1;;;;;19741:54;;;;4166:37;;11013:2;10998:18;;10984:124;11115:628;;19752:42;;;;;4196:5;19741:54;4173:3;4166:37;5276:5;11503:2;11492:9;11488:18;5246:37;11338:3;11540:2;11529:9;11525:18;11518:48;5437:5;18160:12;18704:6;11338:3;11327:9;11323:19;18692;5530:52;5575:6;18732:14;11327:9;18732:14;11503:2;5556:5;5552:16;5530:52;;;19574:13;;19567:21;11729:2;11714:18;;5129:34;-1:-1;17645:9;20385:14;;;;-1:-1;;20381:28;5594:39;18732:14;5594:39;;11309:434;-1:-1;;;11309:434;11750:370;11927:2;11941:47;;;18160:12;;11912:18;;;18692:19;;;11750:370;;11927:2;17850:14;;;;18732;;;;11750:370;4774:260;4799:6;4796:1;4793:13;4774:260;;;4860:13;;-1:-1;;;;;19741:54;4166:37;;18547:14;;;;4077;;;;19752:42;4814:9;4774:260;;;-1:-1;11994:116;;11898:222;-1:-1;;;;;;11898:222;12127:210;19574:13;;19567:21;5129:34;;12248:2;12233:18;;12219:118;12344:333;5246:37;;;12663:2;12648:18;;5246:37;12499:2;12484:18;;12470:207;12684:416;12884:2;12898:47;;;7147:2;12869:18;;;18692:19;-1:-1;;;18732:14;;;7163:38;7220:12;;;12855:245;13107:416;13307:2;13321:47;;;7471:2;13292:18;;;18692:19;7507:28;18732:14;;;7487:49;7555:12;;;13278:245;13530:416;13730:2;13744:47;;;7806:2;13715:18;;;18692:19;7842:28;18732:14;;;7822:49;7890:12;;;13701:245;13953:416;14153:2;14167:47;;;8141:2;14138:18;;;18692:19;8177:26;18732:14;;;8157:47;8223:12;;;14124:245;14376:416;14576:2;14590:47;;;8474:2;14561:18;;;18692:19;-1:-1;;;18732:14;;;8490:40;8549:12;;;14547:245;14799:416;14999:2;15013:47;;;8800:2;14984:18;;;18692:19;-1:-1;;;18732:14;;;8816:41;8876:12;;;14970:245;15222:416;15422:2;15436:47;;;9127:2;15407:18;;;18692:19;-1:-1;;;18732:14;;;9143:41;9203:12;;;15393:245;15645:416;15845:2;15859:47;;;9454:2;15830:18;;;18692:19;-1:-1;;;18732:14;;;9470:42;9531:12;;;15816:245;16068:416;16268:2;16282:47;;;9782:2;16253:18;;;18692:19;-1:-1;;;18732:14;;;9798:37;9854:12;;;16239:245;16491:416;16691:2;16705:47;;;10105:2;16676:18;;;18692:19;10141:25;18732:14;;;10121:46;10186:12;;;16662:245;16914:222;5246:37;;;17041:2;17026:18;;17012:124;20041:268;20106:1;20113:101;20127:6;20124:1;20121:13;20113:101;;;20194:11;;;20188:18;20175:11;;;20168:39;20149:2;20142:10;20113:101;;;20229:6;20226:1;20223:13;20220:2;;;20106:1;20285:6;20280:3;20276:16;20269:27;20220:2;;20090:219;;;", "source": "/**\n *Submitted for verification at Bscscan.com on 2020-09-25\n */\n\n/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n\ncontract MultiSigWalletWithTimelock {\n uint256 public constant MAX_OWNER_COUNT = 50;\n uint256 public lockSeconds = 86400;\n\n event Confirmation(address indexed sender, uint256 indexed transactionId);\n event Revocation(address indexed sender, uint256 indexed transactionId);\n event Submission(uint256 indexed transactionId);\n event Execution(uint256 indexed transactionId);\n event ExecutionFailure(uint256 indexed transactionId);\n event Deposit(address indexed sender, uint256 value);\n event OwnerAddition(address indexed owner);\n event OwnerRemoval(address indexed owner);\n event RequirementChange(uint256 required);\n event UnlockTimeSet(uint256 indexed transactionId, uint256 confirmationTime);\n event LockSecondsChange(uint256 lockSeconds);\n\n mapping(uint256 => Transaction) public transactions;\n mapping(uint256 => mapping(address => bool)) public confirmations;\n mapping(address => bool) public isOwner;\n mapping(uint256 => uint256) public unlockTimes;\n\n address[] public owners;\n uint256 public required;\n uint256 public transactionCount;\n\n struct Transaction {\n address destination;\n uint256 value;\n bytes data;\n bool executed;\n }\n\n struct EmergencyCall {\n bytes32 selector;\n uint256 paramsBytesCount;\n }\n\n // Functions bypass the time lock process\n EmergencyCall[] public emergencyCalls;\n\n modifier onlyWallet() {\n if (msg.sender != address(this)) revert(\"ONLY_WALLET_ERROR\");\n _;\n }\n\n modifier ownerDoesNotExist(address owner) {\n if (isOwner[owner]) revert(\"OWNER_DOES_NOT_EXIST_ERROR\");\n _;\n }\n\n modifier ownerExists(address owner) {\n if (!isOwner[owner]) revert(\"OWNER_EXISTS_ERROR\");\n _;\n }\n\n modifier transactionExists(uint256 transactionId) {\n if (transactions[transactionId].destination == address(0))\n revert(\"TRANSACTION_EXISTS_ERROR\");\n _;\n }\n\n modifier confirmed(uint256 transactionId, address owner) {\n if (!confirmations[transactionId][owner]) revert(\"CONFIRMED_ERROR\");\n _;\n }\n\n modifier notConfirmed(uint256 transactionId, address owner) {\n if (confirmations[transactionId][owner]) revert(\"NOT_CONFIRMED_ERROR\");\n _;\n }\n\n modifier notExecuted(uint256 transactionId) {\n if (transactions[transactionId].executed) revert(\"NOT_EXECUTED_ERROR\");\n _;\n }\n\n modifier notNull(address _address) {\n if (_address == address(0)) revert(\"NOT_NULL_ERROR\");\n _;\n }\n\n modifier validRequirement(uint256 ownerCount, uint256 _required) {\n if (\n ownerCount > MAX_OWNER_COUNT ||\n _required > ownerCount ||\n _required == 0 ||\n ownerCount == 0\n ) revert(\"VALID_REQUIREMENT_ERROR\");\n _;\n }\n\n /** @dev Fallback function allows to deposit ether. */\n fallback() external payable {\n if (msg.value > 0) {\n emit Deposit(msg.sender, msg.value);\n }\n }\n\n receive() external payable {\n if (msg.value > 0) {\n emit Deposit(msg.sender, msg.value);\n }\n }\n\n /** @dev Contract constructor sets initial owners and required number of confirmations.\n * @param _owners List of initial owners.\n * @param _required Number of required confirmations.\n */\n constructor(address[] memory _owners, uint256 _required)\n public\n validRequirement(_owners.length, _required)\n {\n for (uint256 i = 0; i < _owners.length; i++) {\n if (isOwner[_owners[i]] || _owners[i] == address(0)) {\n revert(\"OWNER_ERROR\");\n }\n\n isOwner[_owners[i]] = true;\n }\n\n owners = _owners;\n required = _required;\n\n // initialzie Emergency calls\n emergencyCalls.push(\n EmergencyCall({\n selector: keccak256(abi.encodePacked(\"claimOwnership()\")),\n paramsBytesCount: 0\n })\n );\n emergencyCalls.push(\n EmergencyCall({\n selector: keccak256(abi.encodePacked(\"setK(uint256)\")),\n paramsBytesCount: 64\n })\n );\n emergencyCalls.push(\n EmergencyCall({\n selector: keccak256(abi.encodePacked(\"setLiquidityProviderFeeRate(uint256)\")),\n paramsBytesCount: 64\n })\n );\n }\n\n function getEmergencyCallsCount() external view returns (uint256 count) {\n return emergencyCalls.length;\n }\n\n /** @dev Allows to add a new owner. Transaction has to be sent by wallet.\n * @param owner Address of new owner.\n */\n function addOwner(address owner)\n external\n onlyWallet\n ownerDoesNotExist(owner)\n notNull(owner)\n validRequirement(owners.length + 1, required)\n {\n isOwner[owner] = true;\n owners.push(owner);\n emit OwnerAddition(owner);\n }\n\n /** @dev Allows to remove an owner. Transaction has to be sent by wallet.\n * @param owner Address of owner.\n */\n function removeOwner(address owner) external onlyWallet ownerExists(owner) {\n isOwner[owner] = false;\n for (uint256 i = 0; i < owners.length - 1; i++) {\n if (owners[i] == owner) {\n owners[i] = owners[owners.length - 1];\n break;\n }\n }\n\n owners.pop;\n\n if (required > owners.length) {\n changeRequirement(owners.length);\n }\n\n emit OwnerRemoval(owner);\n }\n\n /** @dev Allows to replace an owner with a new owner. Transaction has to be sent by wallet.\n * @param owner Address of owner to be replaced.\n * @param owner Address of new owner.\n */\n function replaceOwner(address owner, address newOwner)\n external\n onlyWallet\n ownerExists(owner)\n ownerDoesNotExist(newOwner)\n {\n for (uint256 i = 0; i < owners.length; i++) {\n if (owners[i] == owner) {\n owners[i] = newOwner;\n break;\n }\n }\n\n isOwner[owner] = false;\n isOwner[newOwner] = true;\n emit OwnerRemoval(owner);\n emit OwnerAddition(newOwner);\n }\n\n /** @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.\n * @param _required Number of required confirmations.\n */\n function changeRequirement(uint256 _required)\n public\n onlyWallet\n validRequirement(owners.length, _required)\n {\n required = _required;\n emit RequirementChange(_required);\n }\n\n /** @dev Changes the duration of the time lock for transactions.\n * @param _lockSeconds Duration needed after a transaction is confirmed and before it becomes executable, in seconds.\n */\n function changeLockSeconds(uint256 _lockSeconds) external onlyWallet {\n lockSeconds = _lockSeconds;\n emit LockSecondsChange(_lockSeconds);\n }\n\n /** @dev Allows an owner to submit and confirm a transaction.\n * @param destination Transaction target address.\n * @param value Transaction ether value.\n * @param data Transaction data payload.\n * @return transactionId Returns transaction ID.\n */\n function submitTransaction(\n address destination,\n uint256 value,\n bytes calldata data\n ) external ownerExists(msg.sender) notNull(destination) returns (uint256 transactionId) {\n transactionId = transactionCount;\n transactions[transactionId] = Transaction({\n destination: destination,\n value: value,\n data: data,\n executed: false\n });\n transactionCount += 1;\n emit Submission(transactionId);\n confirmTransaction(transactionId);\n }\n\n /** @dev Allows an owner to confirm a transaction.\n * @param transactionId Transaction ID.\n */\n function confirmTransaction(uint256 transactionId)\n public\n ownerExists(msg.sender)\n transactionExists(transactionId)\n notConfirmed(transactionId, msg.sender)\n {\n confirmations[transactionId][msg.sender] = true;\n emit Confirmation(msg.sender, transactionId);\n\n if (\n isConfirmed(transactionId) &&\n unlockTimes[transactionId] == 0 &&\n !isEmergencyCall(transactionId)\n ) {\n uint256 unlockTime = block.timestamp + lockSeconds;\n unlockTimes[transactionId] = unlockTime;\n emit UnlockTimeSet(transactionId, unlockTime);\n }\n }\n\n function isEmergencyCall(uint256 transactionId) internal view returns (bool) {\n bytes memory data = transactions[transactionId].data;\n\n for (uint256 i = 0; i < emergencyCalls.length; i++) {\n EmergencyCall memory emergencyCall = emergencyCalls[i];\n\n if (\n data.length == emergencyCall.paramsBytesCount + 4 &&\n data.length >= 4 &&\n emergencyCall.selector[0] == data[0] &&\n emergencyCall.selector[1] == data[1] &&\n emergencyCall.selector[2] == data[2] &&\n emergencyCall.selector[3] == data[3]\n ) {\n return true;\n }\n }\n\n return false;\n }\n\n function addEmergencyCall(string memory funcName, uint256 _paramsBytesCount) public onlyWallet {\n emergencyCalls.push(\n EmergencyCall({\n selector: keccak256(abi.encodePacked(funcName)),\n paramsBytesCount: _paramsBytesCount\n })\n );\n }\n\n /** @dev Allows an owner to revoke a confirmation for a transaction.\n * @param transactionId Transaction ID.\n */\n function revokeConfirmation(uint256 transactionId)\n external\n ownerExists(msg.sender)\n confirmed(transactionId, msg.sender)\n notExecuted(transactionId)\n {\n confirmations[transactionId][msg.sender] = false;\n emit Revocation(msg.sender, transactionId);\n }\n\n /** @dev Allows anyone to execute a confirmed transaction.\n * @param transactionId Transaction ID.\n */\n function executeTransaction(uint256 transactionId)\n external\n ownerExists(msg.sender)\n notExecuted(transactionId)\n {\n require(block.timestamp >= unlockTimes[transactionId], \"TRANSACTION_NEED_TO_UNLOCK\");\n\n if (isConfirmed(transactionId)) {\n Transaction storage transaction = transactions[transactionId];\n transaction.executed = true;\n (bool success, ) = transaction.destination.call{value: transaction.value}(\n transaction.data\n );\n if (success) emit Execution(transactionId);\n else {\n emit ExecutionFailure(transactionId);\n transaction.executed = false;\n }\n }\n }\n\n /** @dev Returns the confirmation status of a transaction.\n * @param transactionId Transaction ID.\n * @return Confirmation status.\n */\n function isConfirmed(uint256 transactionId) public view returns (bool) {\n uint256 count = 0;\n\n for (uint256 i = 0; i < owners.length; i++) {\n if (confirmations[transactionId][owners[i]]) {\n count += 1;\n }\n\n if (count >= required) {\n return true;\n }\n }\n\n return false;\n }\n\n /* Web3 call functions */\n\n /** @dev Returns number of confirmations of a transaction.\n * @param transactionId Transaction ID.\n * @return count Number of confirmations.\n */\n function getConfirmationCount(uint256 transactionId) external view returns (uint256 count) {\n for (uint256 i = 0; i < owners.length; i++) {\n if (confirmations[transactionId][owners[i]]) {\n count += 1;\n }\n }\n }\n\n /** @dev Returns total number of transactions after filers are applied.\n * @param pending Include pending transactions.\n * @param executed Include executed transactions.\n * @return count Total number of transactions after filters are applied.\n */\n function getTransactionCount(bool pending, bool executed)\n external\n view\n returns (uint256 count)\n {\n for (uint256 i = 0; i < transactionCount; i++) {\n if ((pending && !transactions[i].executed) || (executed && transactions[i].executed)) {\n count += 1;\n }\n }\n }\n\n /** @dev Returns list of owners.\n * @return List of owner addresses.\n */\n function getOwners() external view returns (address[] memory) {\n return owners;\n }\n\n /** @dev Returns array with owner addresses, which confirmed transaction.\n * @param transactionId Transaction ID.\n * @return _confirmations Returns array of owner addresses.\n */\n function getConfirmations(uint256 transactionId)\n external\n view\n returns (address[] memory _confirmations)\n {\n address[] memory confirmationsTemp = new address[](owners.length);\n uint256 count = 0;\n uint256 i;\n\n for (i = 0; i < owners.length; i++) {\n if (confirmations[transactionId][owners[i]]) {\n confirmationsTemp[count] = owners[i];\n count += 1;\n }\n }\n\n _confirmations = new address[](count);\n\n for (i = 0; i < count; i++) {\n _confirmations[i] = confirmationsTemp[i];\n }\n }\n}\n", "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/MultiSig.sol", "ast": { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/MultiSig.sol", "exportedSymbols": { "MultiSigWalletWithTimelock": [ 3385 ] }, "id": 3386, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ { "id": 2199, "literals": [ "solidity", "0.6", ".9" ], "nodeType": "PragmaDirective", "src": "145:22:16" }, { "id": 2200, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", "src": "168:33:16" }, { "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 3385, "linearizedBaseContracts": [ 3385 ], "name": "MultiSigWalletWithTimelock", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, "functionSelector": "d74f8edd", "id": 2203, "mutability": "constant", "name": "MAX_OWNER_COUNT", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3385, "src": "246:44:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2201, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "246:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "hexValue": "3530", "id": 2202, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "288:2:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_50_by_1", "typeString": "int_const 50" }, "value": "50" }, "visibility": "public" }, { "constant": false, "functionSelector": "bfa6fddb", "id": 2206, "mutability": "mutable", "name": "lockSeconds", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3385, "src": "296:34:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2204, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "296:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "hexValue": "3836343030", "id": 2205, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "325:5:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_86400_by_1", "typeString": "int_const 86400" }, "value": "86400" }, "visibility": "public" }, { "anonymous": false, "documentation": null, "id": 2212, "name": "Confirmation", "nodeType": "EventDefinition", "parameters": { "id": 2211, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2208, "indexed": true, "mutability": "mutable", "name": "sender", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2212, "src": "356:22:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2207, "name": "address", "nodeType": "ElementaryTypeName", "src": "356:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2210, "indexed": true, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2212, "src": "380:29:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2209, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "380:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "355:55:16" }, "src": "337:74:16" }, { "anonymous": false, "documentation": null, "id": 2218, "name": "Revocation", "nodeType": "EventDefinition", "parameters": { "id": 2217, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2214, "indexed": true, "mutability": "mutable", "name": "sender", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2218, "src": "433:22:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2213, "name": "address", "nodeType": "ElementaryTypeName", "src": "433:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2216, "indexed": true, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2218, "src": "457:29:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2215, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "457:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "432:55:16" }, "src": "416:72:16" }, { "anonymous": false, "documentation": null, "id": 2222, "name": "Submission", "nodeType": "EventDefinition", "parameters": { "id": 2221, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2220, "indexed": true, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2222, "src": "510:29:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2219, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "510:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "509:31:16" }, "src": "493:48:16" }, { "anonymous": false, "documentation": null, "id": 2226, "name": "Execution", "nodeType": "EventDefinition", "parameters": { "id": 2225, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2224, "indexed": true, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2226, "src": "562:29:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2223, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "562:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "561:31:16" }, "src": "546:47:16" }, { "anonymous": false, "documentation": null, "id": 2230, "name": "ExecutionFailure", "nodeType": "EventDefinition", "parameters": { "id": 2229, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2228, "indexed": true, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2230, "src": "621:29:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2227, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "621:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "620:31:16" }, "src": "598:54:16" }, { "anonymous": false, "documentation": null, "id": 2236, "name": "Deposit", "nodeType": "EventDefinition", "parameters": { "id": 2235, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2232, "indexed": true, "mutability": "mutable", "name": "sender", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2236, "src": "671:22:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2231, "name": "address", "nodeType": "ElementaryTypeName", "src": "671:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2234, "indexed": false, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2236, "src": "695:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2233, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "695:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "670:39:16" }, "src": "657:53:16" }, { "anonymous": false, "documentation": null, "id": 2240, "name": "OwnerAddition", "nodeType": "EventDefinition", "parameters": { "id": 2239, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2238, "indexed": true, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2240, "src": "735:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2237, "name": "address", "nodeType": "ElementaryTypeName", "src": "735:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "734:23:16" }, "src": "715:43:16" }, { "anonymous": false, "documentation": null, "id": 2244, "name": "OwnerRemoval", "nodeType": "EventDefinition", "parameters": { "id": 2243, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2242, "indexed": true, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2244, "src": "782:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2241, "name": "address", "nodeType": "ElementaryTypeName", "src": "782:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "781:23:16" }, "src": "763:42:16" }, { "anonymous": false, "documentation": null, "id": 2248, "name": "RequirementChange", "nodeType": "EventDefinition", "parameters": { "id": 2247, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2246, "indexed": false, "mutability": "mutable", "name": "required", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2248, "src": "834:16:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2245, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "834:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "833:18:16" }, "src": "810:42:16" }, { "anonymous": false, "documentation": null, "id": 2254, "name": "UnlockTimeSet", "nodeType": "EventDefinition", "parameters": { "id": 2253, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2250, "indexed": true, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2254, "src": "877:29:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2249, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "877:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2252, "indexed": false, "mutability": "mutable", "name": "confirmationTime", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2254, "src": "908:24:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2251, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "908:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "876:57:16" }, "src": "857:77:16" }, { "anonymous": false, "documentation": null, "id": 2258, "name": "LockSecondsChange", "nodeType": "EventDefinition", "parameters": { "id": 2257, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2256, "indexed": false, "mutability": "mutable", "name": "lockSeconds", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2258, "src": "963:19:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2255, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "963:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "962:21:16" }, "src": "939:45:16" }, { "constant": false, "functionSelector": "9ace38c2", "id": 2262, "mutability": "mutable", "name": "transactions", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3385, "src": "990:51:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction)" }, "typeName": { "id": 2261, "keyType": { "id": 2259, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "998:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", "src": "990:31:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction)" }, "valueType": { "contractScope": null, "id": 2260, "name": "Transaction", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2292, "src": "1009:11:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.Transaction" } } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "3411c81c", "id": 2268, "mutability": "mutable", "name": "confirmations", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3385, "src": "1047:65:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(uint256 => mapping(address => bool))" }, "typeName": { "id": 2267, "keyType": { "id": 2263, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1055:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", "src": "1047:44:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(uint256 => mapping(address => bool))" }, "valueType": { "id": 2266, "keyType": { "id": 2264, "name": "address", "nodeType": "ElementaryTypeName", "src": "1074:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1066:24:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { "id": 2265, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1085:4:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "2f54bf6e", "id": 2272, "mutability": "mutable", "name": "isOwner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3385, "src": "1118:39:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "typeName": { "id": 2271, "keyType": { "id": 2269, "name": "address", "nodeType": "ElementaryTypeName", "src": "1126:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1118:24:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { "id": 2270, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1137:4:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "76ac947a", "id": 2276, "mutability": "mutable", "name": "unlockTimes", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3385, "src": "1163:46:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" }, "typeName": { "id": 2275, "keyType": { "id": 2273, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1171:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", "src": "1163:27:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" }, "valueType": { "id": 2274, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1182:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "025e7c27", "id": 2279, "mutability": "mutable", "name": "owners", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3385, "src": "1216:23:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[]" }, "typeName": { "baseType": { "id": 2277, "name": "address", "nodeType": "ElementaryTypeName", "src": "1216:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2278, "length": null, "nodeType": "ArrayTypeName", "src": "1216:9:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "dc8452cd", "id": 2281, "mutability": "mutable", "name": "required", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3385, "src": "1245:23:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2280, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1245:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "b77bf600", "id": 2283, "mutability": "mutable", "name": "transactionCount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3385, "src": "1274:31:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2282, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1274:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "canonicalName": "MultiSigWalletWithTimelock.Transaction", "id": 2292, "members": [ { "constant": false, "id": 2285, "mutability": "mutable", "name": "destination", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2292, "src": "1341:19:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2284, "name": "address", "nodeType": "ElementaryTypeName", "src": "1341:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2287, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2292, "src": "1370:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2286, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1370:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2289, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2292, "src": "1393:10:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" }, "typeName": { "id": 2288, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1393:5:16", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2291, "mutability": "mutable", "name": "executed", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2292, "src": "1413:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2290, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1413:4:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "name": "Transaction", "nodeType": "StructDefinition", "scope": 3385, "src": "1312:121:16", "visibility": "public" }, { "canonicalName": "MultiSigWalletWithTimelock.EmergencyCall", "id": 2297, "members": [ { "constant": false, "id": 2294, "mutability": "mutable", "name": "selector", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2297, "src": "1470:16:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 2293, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1470:7:16", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2296, "mutability": "mutable", "name": "paramsBytesCount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2297, "src": "1496:24:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2295, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1496:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "name": "EmergencyCall", "nodeType": "StructDefinition", "scope": 3385, "src": "1439:88:16", "visibility": "public" }, { "constant": false, "functionSelector": "86384afc", "id": 2300, "mutability": "mutable", "name": "emergencyCalls", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3385, "src": "1579:37:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall[]" }, "typeName": { "baseType": { "contractScope": null, "id": 2298, "name": "EmergencyCall", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2297, "src": "1579:13:16", "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall" } }, "id": 2299, "length": null, "nodeType": "ArrayTypeName", "src": "1579:15:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall[]" } }, "value": null, "visibility": "public" }, { "body": { "id": 2315, "nodeType": "Block", "src": "1645:88:16", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "id": 2308, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2302, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "1659:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1659:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2306, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "1681:4:16", "typeDescriptions": { "typeIdentifier": "t_contract$_MultiSigWalletWithTimelock_$3385", "typeString": "contract MultiSigWalletWithTimelock" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_MultiSigWalletWithTimelock_$3385", "typeString": "contract MultiSigWalletWithTimelock" } ], "id": 2305, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1673:7:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 2304, "name": "address", "nodeType": "ElementaryTypeName", "src": "1673:7:16", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 2307, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1673:13:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "1659:27:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2313, "nodeType": "IfStatement", "src": "1655:60:16", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "4f4e4c595f57414c4c45545f4552524f52", "id": 2310, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1695:19:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_154c05d05b8b4fc5182b27cf8fc7d4edd12f98319c5a78b89a786d51471e8730", "typeString": "literal_string \"ONLY_WALLET_ERROR\"" }, "value": "ONLY_WALLET_ERROR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_154c05d05b8b4fc5182b27cf8fc7d4edd12f98319c5a78b89a786d51471e8730", "typeString": "literal_string \"ONLY_WALLET_ERROR\"" } ], "id": 2309, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "1688:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 2311, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1688:27:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2312, "nodeType": "ExpressionStatement", "src": "1688:27:16" } }, { "id": 2314, "nodeType": "PlaceholderStatement", "src": "1725:1:16" } ] }, "documentation": null, "id": 2316, "name": "onlyWallet", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 2301, "nodeType": "ParameterList", "parameters": [], "src": "1642:2:16" }, "src": "1623:110:16", "virtual": false, "visibility": "internal" }, { "body": { "id": 2329, "nodeType": "Block", "src": "1781:84:16", "statements": [ { "condition": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2320, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2272, "src": "1795:7:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2322, "indexExpression": { "argumentTypes": null, "id": 2321, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2318, "src": "1803:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1795:14:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2327, "nodeType": "IfStatement", "src": "1791:56:16", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "4f574e45525f444f45535f4e4f545f45584953545f4552524f52", "id": 2324, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1818:28:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_0de49efc4c535b8cd13aa9de166b4db6f53a1ded9c131ce141ae0ef26adc35fb", "typeString": "literal_string \"OWNER_DOES_NOT_EXIST_ERROR\"" }, "value": "OWNER_DOES_NOT_EXIST_ERROR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_0de49efc4c535b8cd13aa9de166b4db6f53a1ded9c131ce141ae0ef26adc35fb", "typeString": "literal_string \"OWNER_DOES_NOT_EXIST_ERROR\"" } ], "id": 2323, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "1811:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 2325, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1811:36:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2326, "nodeType": "ExpressionStatement", "src": "1811:36:16" } }, { "id": 2328, "nodeType": "PlaceholderStatement", "src": "1857:1:16" } ] }, "documentation": null, "id": 2330, "name": "ownerDoesNotExist", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 2319, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2318, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2330, "src": "1766:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2317, "name": "address", "nodeType": "ElementaryTypeName", "src": "1766:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1765:15:16" }, "src": "1739:126:16", "virtual": false, "visibility": "internal" }, { "body": { "id": 2344, "nodeType": "Block", "src": "1907:77:16", "statements": [ { "condition": { "argumentTypes": null, "id": 2337, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "1921:15:16", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2334, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2272, "src": "1922:7:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2336, "indexExpression": { "argumentTypes": null, "id": 2335, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2332, "src": "1930:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1922:14:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2342, "nodeType": "IfStatement", "src": "1917:49:16", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "4f574e45525f4558495354535f4552524f52", "id": 2339, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1945:20:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a5679e051834b8488b2a064e5d691d44ba5a73e92259d98f57c96ad80baf3fdf", "typeString": "literal_string \"OWNER_EXISTS_ERROR\"" }, "value": "OWNER_EXISTS_ERROR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_a5679e051834b8488b2a064e5d691d44ba5a73e92259d98f57c96ad80baf3fdf", "typeString": "literal_string \"OWNER_EXISTS_ERROR\"" } ], "id": 2338, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "1938:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 2340, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1938:28:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2341, "nodeType": "ExpressionStatement", "src": "1938:28:16" } }, { "id": 2343, "nodeType": "PlaceholderStatement", "src": "1976:1:16" } ] }, "documentation": null, "id": 2345, "name": "ownerExists", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 2333, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2332, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2345, "src": "1892:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2331, "name": "address", "nodeType": "ElementaryTypeName", "src": "1892:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1891:15:16" }, "src": "1871:113:16", "virtual": false, "visibility": "internal" }, { "body": { "id": 2364, "nodeType": "Block", "src": "2040:133:16", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 2357, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2349, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2262, "src": "2054:12:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" } }, "id": 2351, "indexExpression": { "argumentTypes": null, "id": 2350, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2347, "src": "2067:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2054:27:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" } }, "id": 2352, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "destination", "nodeType": "MemberAccess", "referencedDeclaration": 2285, "src": "2054:39:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 2355, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2105:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 2354, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2097:7:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 2353, "name": "address", "nodeType": "ElementaryTypeName", "src": "2097:7:16", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 2356, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2097:10:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "2054:53:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2362, "nodeType": "IfStatement", "src": "2050:105:16", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "5452414e53414354494f4e5f4558495354535f4552524f52", "id": 2359, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2128:26:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_0fa90d37b3d14dd2ae235c1fa2187af5b08c507d31134f0aa67ff6323c434990", "typeString": "literal_string \"TRANSACTION_EXISTS_ERROR\"" }, "value": "TRANSACTION_EXISTS_ERROR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_0fa90d37b3d14dd2ae235c1fa2187af5b08c507d31134f0aa67ff6323c434990", "typeString": "literal_string \"TRANSACTION_EXISTS_ERROR\"" } ], "id": 2358, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "2121:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 2360, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2121:34:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2361, "nodeType": "ExpressionStatement", "src": "2121:34:16" } }, { "id": 2363, "nodeType": "PlaceholderStatement", "src": "2165:1:16" } ] }, "documentation": null, "id": 2365, "name": "transactionExists", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 2348, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2347, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2365, "src": "2017:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2346, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2017:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2016:23:16" }, "src": "1990:183:16", "virtual": false, "visibility": "internal" }, { "body": { "id": 2383, "nodeType": "Block", "src": "2236:95:16", "statements": [ { "condition": { "argumentTypes": null, "id": 2376, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "2250:36:16", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2371, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2268, "src": "2251:13:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(uint256 => mapping(address => bool))" } }, "id": 2373, "indexExpression": { "argumentTypes": null, "id": 2372, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2367, "src": "2265:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2251:28:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2375, "indexExpression": { "argumentTypes": null, "id": 2374, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2369, "src": "2280:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2251:35:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2381, "nodeType": "IfStatement", "src": "2246:67:16", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "434f4e4649524d45445f4552524f52", "id": 2378, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2295:17:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_07011048ab4b644cae74fcaa058ba0ec4eb97750e69f4cfa039855b5807ab8eb", "typeString": "literal_string \"CONFIRMED_ERROR\"" }, "value": "CONFIRMED_ERROR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_07011048ab4b644cae74fcaa058ba0ec4eb97750e69f4cfa039855b5807ab8eb", "typeString": "literal_string \"CONFIRMED_ERROR\"" } ], "id": 2377, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "2288:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 2379, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2288:25:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2380, "nodeType": "ExpressionStatement", "src": "2288:25:16" } }, { "id": 2382, "nodeType": "PlaceholderStatement", "src": "2323:1:16" } ] }, "documentation": null, "id": 2384, "name": "confirmed", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 2370, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2367, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2384, "src": "2198:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2366, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2198:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2369, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2384, "src": "2221:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2368, "name": "address", "nodeType": "ElementaryTypeName", "src": "2221:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2197:38:16" }, "src": "2179:152:16", "virtual": false, "visibility": "internal" }, { "body": { "id": 2401, "nodeType": "Block", "src": "2397:98:16", "statements": [ { "condition": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2390, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2268, "src": "2411:13:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(uint256 => mapping(address => bool))" } }, "id": 2392, "indexExpression": { "argumentTypes": null, "id": 2391, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2386, "src": "2425:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2411:28:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2394, "indexExpression": { "argumentTypes": null, "id": 2393, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2388, "src": "2440:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2411:35:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2399, "nodeType": "IfStatement", "src": "2407:70:16", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "4e4f545f434f4e4649524d45445f4552524f52", "id": 2396, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2455:21:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b93c270f73799c5026e6575ecff3675a730a2cac46b17cbb393881d7e18763e2", "typeString": "literal_string \"NOT_CONFIRMED_ERROR\"" }, "value": "NOT_CONFIRMED_ERROR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_b93c270f73799c5026e6575ecff3675a730a2cac46b17cbb393881d7e18763e2", "typeString": "literal_string \"NOT_CONFIRMED_ERROR\"" } ], "id": 2395, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "2448:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 2397, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2448:29:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2398, "nodeType": "ExpressionStatement", "src": "2448:29:16" } }, { "id": 2400, "nodeType": "PlaceholderStatement", "src": "2487:1:16" } ] }, "documentation": null, "id": 2402, "name": "notConfirmed", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 2389, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2386, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2402, "src": "2359:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2385, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2359:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2388, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2402, "src": "2382:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2387, "name": "address", "nodeType": "ElementaryTypeName", "src": "2382:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2358:38:16" }, "src": "2337:158:16", "virtual": false, "visibility": "internal" }, { "body": { "id": 2416, "nodeType": "Block", "src": "2545:98:16", "statements": [ { "condition": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2406, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2262, "src": "2559:12:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" } }, "id": 2408, "indexExpression": { "argumentTypes": null, "id": 2407, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2404, "src": "2572:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2559:27:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" } }, "id": 2409, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "executed", "nodeType": "MemberAccess", "referencedDeclaration": 2291, "src": "2559:36:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2414, "nodeType": "IfStatement", "src": "2555:70:16", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "4e4f545f45584543555445445f4552524f52", "id": 2411, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2604:20:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_543cb05dbc23c4af907ca5a03a85c3d24cca2a1ba4a868fc8943b3b8ea69747d", "typeString": "literal_string \"NOT_EXECUTED_ERROR\"" }, "value": "NOT_EXECUTED_ERROR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_543cb05dbc23c4af907ca5a03a85c3d24cca2a1ba4a868fc8943b3b8ea69747d", "typeString": "literal_string \"NOT_EXECUTED_ERROR\"" } ], "id": 2410, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "2597:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 2412, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2597:28:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2413, "nodeType": "ExpressionStatement", "src": "2597:28:16" } }, { "id": 2415, "nodeType": "PlaceholderStatement", "src": "2635:1:16" } ] }, "documentation": null, "id": 2417, "name": "notExecuted", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 2405, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2404, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2417, "src": "2522:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2403, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2522:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2521:23:16" }, "src": "2501:142:16", "virtual": false, "visibility": "internal" }, { "body": { "id": 2433, "nodeType": "Block", "src": "2684:80:16", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 2426, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2421, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2419, "src": "2698:8:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 2424, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2718:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 2423, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2710:7:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 2422, "name": "address", "nodeType": "ElementaryTypeName", "src": "2710:7:16", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 2425, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2710:10:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "2698:22:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2431, "nodeType": "IfStatement", "src": "2694:52:16", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "4e4f545f4e554c4c5f4552524f52", "id": 2428, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2729:16:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ce3a403561f7436d6efa7d01af7869570afca7da394caf15c8ed863039e7b421", "typeString": "literal_string \"NOT_NULL_ERROR\"" }, "value": "NOT_NULL_ERROR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_ce3a403561f7436d6efa7d01af7869570afca7da394caf15c8ed863039e7b421", "typeString": "literal_string \"NOT_NULL_ERROR\"" } ], "id": 2427, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "2722:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 2429, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2722:24:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2430, "nodeType": "ExpressionStatement", "src": "2722:24:16" } }, { "id": 2432, "nodeType": "PlaceholderStatement", "src": "2756:1:16" } ] }, "documentation": null, "id": 2434, "name": "notNull", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 2420, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2419, "mutability": "mutable", "name": "_address", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2434, "src": "2666:16:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2418, "name": "address", "nodeType": "ElementaryTypeName", "src": "2666:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2665:18:16" }, "src": "2649:115:16", "virtual": false, "visibility": "internal" }, { "body": { "id": 2461, "nodeType": "Block", "src": "2835:216:16", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2454, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2450, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2446, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2442, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2440, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2436, "src": "2862:10:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "id": 2441, "name": "MAX_OWNER_COUNT", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2203, "src": "2875:15:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2862:28:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2445, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2443, "name": "_required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2438, "src": "2906:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "id": 2444, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2436, "src": "2918:10:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2906:22:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "2862:66:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2449, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2447, "name": "_required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2438, "src": "2944:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 2448, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2957:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "2944:14:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "2862:96:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2453, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2451, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2436, "src": "2974:10:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 2452, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2988:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "2974:15:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "2862:127:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2459, "nodeType": "IfStatement", "src": "2845:188:16", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "56414c49445f524551554952454d454e545f4552524f52", "id": 2456, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3007:25:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f7c52332ec5db78e995be376b3733f9df721050c4817a36758c44295f63a1644", "typeString": "literal_string \"VALID_REQUIREMENT_ERROR\"" }, "value": "VALID_REQUIREMENT_ERROR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_f7c52332ec5db78e995be376b3733f9df721050c4817a36758c44295f63a1644", "typeString": "literal_string \"VALID_REQUIREMENT_ERROR\"" } ], "id": 2455, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "3000:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 2457, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3000:33:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2458, "nodeType": "ExpressionStatement", "src": "3000:33:16" } }, { "id": 2460, "nodeType": "PlaceholderStatement", "src": "3043:1:16" } ] }, "documentation": null, "id": 2462, "name": "validRequirement", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 2439, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2436, "mutability": "mutable", "name": "ownerCount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2462, "src": "2796:18:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2435, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2796:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2438, "mutability": "mutable", "name": "_required", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2462, "src": "2816:17:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2437, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2816:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2795:39:16" }, "src": "2770:281:16", "virtual": false, "visibility": "internal" }, { "body": { "id": 2479, "nodeType": "Block", "src": "3144:95:16", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2469, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2466, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3158:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2467, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3158:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 2468, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3170:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3158:13:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2478, "nodeType": "IfStatement", "src": "3154:79:16", "trueBody": { "id": 2477, "nodeType": "Block", "src": "3173:60:16", "statements": [ { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2471, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3200:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2472, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3200:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2473, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3212:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2474, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3212:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2470, "name": "Deposit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2236, "src": "3192:7:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 2475, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3192:30:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2476, "nodeType": "EmitStatement", "src": "3187:35:16" } ] } } ] }, "documentation": { "id": 2463, "nodeType": "StructuredDocumentation", "src": "3057:54:16", "text": "@dev Fallback function allows to deposit ether. " }, "id": 2480, "implemented": true, "kind": "fallback", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2464, "nodeType": "ParameterList", "parameters": [], "src": "3124:2:16" }, "returnParameters": { "id": 2465, "nodeType": "ParameterList", "parameters": [], "src": "3144:0:16" }, "scope": 3385, "src": "3116:123:16", "stateMutability": "payable", "virtual": false, "visibility": "external" }, { "body": { "id": 2496, "nodeType": "Block", "src": "3272:95:16", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2486, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2483, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3286:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2484, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3286:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 2485, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3298:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3286:13:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2495, "nodeType": "IfStatement", "src": "3282:79:16", "trueBody": { "id": 2494, "nodeType": "Block", "src": "3301:60:16", "statements": [ { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2488, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3328:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2489, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3328:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2490, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3340:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2491, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3340:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2487, "name": "Deposit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2236, "src": "3320:7:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 2492, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3320:30:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2493, "nodeType": "EmitStatement", "src": "3315:35:16" } ] } } ] }, "documentation": null, "id": 2497, "implemented": true, "kind": "receive", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2481, "nodeType": "ParameterList", "parameters": [], "src": "3252:2:16" }, "returnParameters": { "id": 2482, "nodeType": "ParameterList", "parameters": [], "src": "3272:0:16" }, "scope": 3385, "src": "3245:122:16", "stateMutability": "payable", "virtual": false, "visibility": "external" }, { "body": { "id": 2602, "nodeType": "Block", "src": "3705:930:16", "statements": [ { "body": { "id": 2550, "nodeType": "Block", "src": "3760:172:16", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2535, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2522, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2272, "src": "3778:7:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2526, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2523, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2501, "src": "3786:7:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 2525, "indexExpression": { "argumentTypes": null, "id": 2524, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2512, "src": "3794:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3786:10:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3778:19:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 2534, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2527, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2501, "src": "3801:7:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 2529, "indexExpression": { "argumentTypes": null, "id": 2528, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2512, "src": "3809:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3801:10:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 2532, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3823:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 2531, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3815:7:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 2530, "name": "address", "nodeType": "ElementaryTypeName", "src": "3815:7:16", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 2533, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3815:10:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "3801:24:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "3778:47:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2541, "nodeType": "IfStatement", "src": "3774:107:16", "trueBody": { "id": 2540, "nodeType": "Block", "src": "3827:54:16", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "4f574e45525f4552524f52", "id": 2537, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3852:13:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_50f5ffffd46b93fc4216a2fd08d8a742f987ab7f4a48d802983a9d879430368b", "typeString": "literal_string \"OWNER_ERROR\"" }, "value": "OWNER_ERROR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_50f5ffffd46b93fc4216a2fd08d8a742f987ab7f4a48d802983a9d879430368b", "typeString": "literal_string \"OWNER_ERROR\"" } ], "id": 2536, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "3845:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 2538, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3845:21:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2539, "nodeType": "ExpressionStatement", "src": "3845:21:16" } ] } }, { "expression": { "argumentTypes": null, "id": 2548, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2542, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2272, "src": "3895:7:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2546, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2543, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2501, "src": "3903:7:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 2545, "indexExpression": { "argumentTypes": null, "id": 2544, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2512, "src": "3911:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3903:10:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3895:19:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 2547, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "3917:4:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "3895:26:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2549, "nodeType": "ExpressionStatement", "src": "3895:26:16" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2518, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2515, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2512, "src": "3735:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2516, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2501, "src": "3739:7:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 2517, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3739:14:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3735:18:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2551, "initializationExpression": { "assignments": [ 2512 ], "declarations": [ { "constant": false, "id": 2512, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2551, "src": "3720:9:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2511, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3720:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 2514, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 2513, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3732:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "3720:13:16" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 2520, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "3755:3:16", "subExpression": { "argumentTypes": null, "id": 2519, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2512, "src": "3755:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2521, "nodeType": "ExpressionStatement", "src": "3755:3:16" }, "nodeType": "ForStatement", "src": "3715:217:16" }, { "expression": { "argumentTypes": null, "id": 2554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 2552, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "3942:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 2553, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2501, "src": "3951:7:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "src": "3942:16:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2555, "nodeType": "ExpressionStatement", "src": "3942:16:16" }, { "expression": { "argumentTypes": null, "id": 2558, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 2556, "name": "required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2281, "src": "3968:8:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 2557, "name": "_required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2503, "src": "3979:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3968:20:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2559, "nodeType": "ExpressionStatement", "src": "3968:20:16" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "636c61696d4f776e6572736869702829", "id": 2567, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4139:18:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_4e71e0c8676e3746167a1acf5f45b9c4f9bfd01db4faa49dd539202eb4a76b23", "typeString": "literal_string \"claimOwnership()\"" }, "value": "claimOwnership()" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_4e71e0c8676e3746167a1acf5f45b9c4f9bfd01db4faa49dd539202eb4a76b23", "typeString": "literal_string \"claimOwnership()\"" } ], "expression": { "argumentTypes": null, "id": 2565, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4122:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2566, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4122:16:16", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2568, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4122:36:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2564, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "4112:9:16", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2569, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4112:47:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "hexValue": "30", "id": 2570, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4195:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 2563, "name": "EmergencyCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2297, "src": "4070:13:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_EmergencyCall_$2297_storage_ptr_$", "typeString": "type(struct MultiSigWalletWithTimelock.EmergencyCall storage pointer)" } }, "id": 2571, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "names": [ "selector", "paramsBytesCount" ], "nodeType": "FunctionCall", "src": "4070:141:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } ], "expression": { "argumentTypes": null, "id": 2560, "name": "emergencyCalls", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2300, "src": "4037:14:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" } }, "id": 2562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4037:19:16", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_EmergencyCall_$2297_storage_$returns$__$", "typeString": "function (struct MultiSigWalletWithTimelock.EmergencyCall storage ref)" } }, "id": 2572, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4037:184:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2573, "nodeType": "ExpressionStatement", "src": "4037:184:16" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "7365744b2875696e7432353629", "id": 2581, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4333:15:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_67de8be994f5e612024f208d2fe429438ed98f752dca627d14a952634dbd4ba7", "typeString": "literal_string \"setK(uint256)\"" }, "value": "setK(uint256)" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_67de8be994f5e612024f208d2fe429438ed98f752dca627d14a952634dbd4ba7", "typeString": "literal_string \"setK(uint256)\"" } ], "expression": { "argumentTypes": null, "id": 2579, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4316:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2580, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4316:16:16", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2582, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4316:33:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2578, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "4306:9:16", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2583, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4306:44:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "hexValue": "3634", "id": 2584, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4386:2:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" } ], "id": 2577, "name": "EmergencyCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2297, "src": "4264:13:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_EmergencyCall_$2297_storage_ptr_$", "typeString": "type(struct MultiSigWalletWithTimelock.EmergencyCall storage pointer)" } }, "id": 2585, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "names": [ "selector", "paramsBytesCount" ], "nodeType": "FunctionCall", "src": "4264:139:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } ], "expression": { "argumentTypes": null, "id": 2574, "name": "emergencyCalls", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2300, "src": "4231:14:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" } }, "id": 2576, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4231:19:16", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_EmergencyCall_$2297_storage_$returns$__$", "typeString": "function (struct MultiSigWalletWithTimelock.EmergencyCall storage ref)" } }, "id": 2586, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4231:182:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2587, "nodeType": "ExpressionStatement", "src": "4231:182:16" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "7365744c697175696469747950726f7669646572466565526174652875696e7432353629", "id": 2595, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4525:38:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5bb7552a97062da753264cd0b6de4cb510c3e7bc8360141372bd76876d44f10e", "typeString": "literal_string \"setLiquidityProviderFeeRate(uint256)\"" }, "value": "setLiquidityProviderFeeRate(uint256)" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_5bb7552a97062da753264cd0b6de4cb510c3e7bc8360141372bd76876d44f10e", "typeString": "literal_string \"setLiquidityProviderFeeRate(uint256)\"" } ], "expression": { "argumentTypes": null, "id": 2593, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4508:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2594, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4508:16:16", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2596, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4508:56:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2592, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "4498:9:16", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2597, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4498:67:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "hexValue": "3634", "id": 2598, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4601:2:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" } ], "id": 2591, "name": "EmergencyCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2297, "src": "4456:13:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_EmergencyCall_$2297_storage_ptr_$", "typeString": "type(struct MultiSigWalletWithTimelock.EmergencyCall storage pointer)" } }, "id": 2599, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "names": [ "selector", "paramsBytesCount" ], "nodeType": "FunctionCall", "src": "4456:162:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } ], "expression": { "argumentTypes": null, "id": 2588, "name": "emergencyCalls", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2300, "src": "4423:14:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" } }, "id": 2590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4423:19:16", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_EmergencyCall_$2297_storage_$returns$__$", "typeString": "function (struct MultiSigWalletWithTimelock.EmergencyCall storage ref)" } }, "id": 2600, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4423:205:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2601, "nodeType": "ExpressionStatement", "src": "4423:205:16" } ] }, "documentation": { "id": 2498, "nodeType": "StructuredDocumentation", "src": "3373:199:16", "text": "@dev Contract constructor sets initial owners and required number of confirmations.\n @param _owners List of initial owners.\n @param _required Number of required confirmations." }, "id": 2603, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2506, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2501, "src": "3674:7:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 2507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3674:14:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 2508, "name": "_required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2503, "src": "3690:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 2509, "modifierName": { "argumentTypes": null, "id": 2505, "name": "validRequirement", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2462, "src": "3657:16:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", "typeString": "modifier (uint256,uint256)" } }, "nodeType": "ModifierInvocation", "src": "3657:43:16" } ], "name": "", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2504, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2501, "mutability": "mutable", "name": "_owners", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2603, "src": "3589:24:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 2499, "name": "address", "nodeType": "ElementaryTypeName", "src": "3589:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2500, "length": null, "nodeType": "ArrayTypeName", "src": "3589:9:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2503, "mutability": "mutable", "name": "_required", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2603, "src": "3615:17:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2502, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3615:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "3588:45:16" }, "returnParameters": { "id": 2510, "nodeType": "ParameterList", "parameters": [], "src": "3705:0:16" }, "scope": 3385, "src": "3577:1058:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 2611, "nodeType": "Block", "src": "4713:45:16", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2608, "name": "emergencyCalls", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2300, "src": "4730:14:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" } }, "id": 2609, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4730:21:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 2607, "id": 2610, "nodeType": "Return", "src": "4723:28:16" } ] }, "documentation": null, "functionSelector": "c0af0227", "id": 2612, "implemented": true, "kind": "function", "modifiers": [], "name": "getEmergencyCallsCount", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2604, "nodeType": "ParameterList", "parameters": [], "src": "4672:2:16" }, "returnParameters": { "id": 2607, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2606, "mutability": "mutable", "name": "count", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2612, "src": "4698:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2605, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4698:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4697:15:16" }, "scope": 3385, "src": "4641:117:16", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 2649, "nodeType": "Block", "src": "5075:101:16", "statements": [ { "expression": { "argumentTypes": null, "id": 2637, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2633, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2272, "src": "5085:7:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2635, "indexExpression": { "argumentTypes": null, "id": 2634, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2615, "src": "5093:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5085:14:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 2636, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "5102:4:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "5085:21:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2638, "nodeType": "ExpressionStatement", "src": "5085:21:16" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2642, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2615, "src": "5128:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "id": 2639, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "5116:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2641, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5116:11:16", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 2643, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5116:18:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2644, "nodeType": "ExpressionStatement", "src": "5116:18:16" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2646, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2615, "src": "5163:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 2645, "name": "OwnerAddition", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2240, "src": "5149:13:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 2647, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5149:20:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2648, "nodeType": "EmitStatement", "src": "5144:25:16" } ] }, "documentation": { "id": 2613, "nodeType": "StructuredDocumentation", "src": "4764:123:16", "text": "@dev Allows to add a new owner. Transaction has to be sent by wallet.\n @param owner Address of new owner." }, "functionSelector": "7065cb48", "id": 2650, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 2618, "modifierName": { "argumentTypes": null, "id": 2617, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2316, "src": "4950:10:16", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "4950:10:16" }, { "arguments": [ { "argumentTypes": null, "id": 2620, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2615, "src": "4987:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "id": 2621, "modifierName": { "argumentTypes": null, "id": 2619, "name": "ownerDoesNotExist", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2330, "src": "4969:17:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "4969:24:16" }, { "arguments": [ { "argumentTypes": null, "id": 2623, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2615, "src": "5010:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "id": 2624, "modifierName": { "argumentTypes": null, "id": 2622, "name": "notNull", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2434, "src": "5002:7:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "5002:14:16" }, { "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2629, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2626, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "5042:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2627, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5042:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 2628, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5058:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "5042:17:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 2630, "name": "required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2281, "src": "5061:8:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 2631, "modifierName": { "argumentTypes": null, "id": 2625, "name": "validRequirement", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2462, "src": "5025:16:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", "typeString": "modifier (uint256,uint256)" } }, "nodeType": "ModifierInvocation", "src": "5025:45:16" } ], "name": "addOwner", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2616, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2615, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2650, "src": "4910:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2614, "name": "address", "nodeType": "ElementaryTypeName", "src": "4910:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "4909:15:16" }, "returnParameters": { "id": 2632, "nodeType": "ParameterList", "parameters": [], "src": "5075:0:16" }, "scope": 3385, "src": "4892:284:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 2720, "nodeType": "Block", "src": "5381:390:16", "statements": [ { "expression": { "argumentTypes": null, "id": 2665, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2661, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2272, "src": "5391:7:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2663, "indexExpression": { "argumentTypes": null, "id": 2662, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2653, "src": "5399:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5391:14:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", "id": 2664, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "5408:5:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "5391:22:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2666, "nodeType": "ExpressionStatement", "src": "5391:22:16" }, { "body": { "id": 2699, "nodeType": "Block", "src": "5471:141:16", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 2684, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2680, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "5489:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2682, "indexExpression": { "argumentTypes": null, "id": 2681, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2668, "src": "5496:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5489:9:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 2683, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2653, "src": "5502:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "5489:18:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2698, "nodeType": "IfStatement", "src": "5485:117:16", "trueBody": { "id": 2697, "nodeType": "Block", "src": "5509:93:16", "statements": [ { "expression": { "argumentTypes": null, "id": 2694, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2685, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "5527:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2687, "indexExpression": { "argumentTypes": null, "id": 2686, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2668, "src": "5534:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5527:9:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2688, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "5539:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2693, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2692, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2689, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "5546:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5546:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 2691, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5562:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "5546:17:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5539:25:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "5527:37:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2695, "nodeType": "ExpressionStatement", "src": "5527:37:16" }, { "id": 2696, "nodeType": "Break", "src": "5582:5:16" } ] } } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2676, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2671, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2668, "src": "5443:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2675, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2672, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "5447:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2673, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5447:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 2674, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5463:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "5447:17:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5443:21:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2700, "initializationExpression": { "assignments": [ 2668 ], "declarations": [ { "constant": false, "id": 2668, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2700, "src": "5428:9:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2667, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5428:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 2670, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 2669, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5440:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "5428:13:16" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 2678, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "5466:3:16", "subExpression": { "argumentTypes": null, "id": 2677, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2668, "src": "5466:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2679, "nodeType": "ExpressionStatement", "src": "5466:3:16" }, "nodeType": "ForStatement", "src": "5423:189:16" }, { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2701, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "5622:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2703, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "pop", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5622:10:16", "typeDescriptions": { "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 2704, "nodeType": "ExpressionStatement", "src": "5622:10:16" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2708, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2705, "name": "required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2281, "src": "5647:8:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2706, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "5658:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2707, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5658:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5647:24:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2715, "nodeType": "IfStatement", "src": "5643:87:16", "trueBody": { "id": 2714, "nodeType": "Block", "src": "5673:57:16", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2710, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "5705:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2711, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5705:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2709, "name": "changeRequirement", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2807, "src": "5687:17:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 2712, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5687:32:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2713, "nodeType": "ExpressionStatement", "src": "5687:32:16" } ] } }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2717, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2653, "src": "5758:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 2716, "name": "OwnerRemoval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2244, "src": "5745:12:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 2718, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5745:19:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2719, "nodeType": "EmitStatement", "src": "5740:24:16" } ] }, "documentation": { "id": 2651, "nodeType": "StructuredDocumentation", "src": "5182:119:16", "text": "@dev Allows to remove an owner. Transaction has to be sent by wallet.\n @param owner Address of owner." }, "functionSelector": "173825d9", "id": 2721, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 2656, "modifierName": { "argumentTypes": null, "id": 2655, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2316, "src": "5351:10:16", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "5351:10:16" }, { "arguments": [ { "argumentTypes": null, "id": 2658, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2653, "src": "5374:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "id": 2659, "modifierName": { "argumentTypes": null, "id": 2657, "name": "ownerExists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2345, "src": "5362:11:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "5362:18:16" } ], "name": "removeOwner", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2654, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2653, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2721, "src": "5327:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2652, "name": "address", "nodeType": "ElementaryTypeName", "src": "5327:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "5326:15:16" }, "returnParameters": { "id": 2660, "nodeType": "ParameterList", "parameters": [], "src": "5381:0:16" }, "scope": 3385, "src": "5306:465:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 2784, "nodeType": "Block", "src": "6134:323:16", "statements": [ { "body": { "id": 2762, "nodeType": "Block", "src": "6188:124:16", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 2752, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2748, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "6206:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2750, "indexExpression": { "argumentTypes": null, "id": 2749, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2738, "src": "6213:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6206:9:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 2751, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2724, "src": "6219:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "6206:18:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2761, "nodeType": "IfStatement", "src": "6202:100:16", "trueBody": { "id": 2760, "nodeType": "Block", "src": "6226:76:16", "statements": [ { "expression": { "argumentTypes": null, "id": 2757, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2753, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "6244:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2755, "indexExpression": { "argumentTypes": null, "id": 2754, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2738, "src": "6251:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6244:9:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 2756, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2726, "src": "6256:8:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "6244:20:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2758, "nodeType": "ExpressionStatement", "src": "6244:20:16" }, { "id": 2759, "nodeType": "Break", "src": "6282:5:16" } ] } } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2744, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2741, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2738, "src": "6164:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2742, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "6168:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6168:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6164:17:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2763, "initializationExpression": { "assignments": [ 2738 ], "declarations": [ { "constant": false, "id": 2738, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2763, "src": "6149:9:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2737, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6149:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 2740, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 2739, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6161:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "6149:13:16" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 2746, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "6183:3:16", "subExpression": { "argumentTypes": null, "id": 2745, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2738, "src": "6183:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2747, "nodeType": "ExpressionStatement", "src": "6183:3:16" }, "nodeType": "ForStatement", "src": "6144:168:16" }, { "expression": { "argumentTypes": null, "id": 2768, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2764, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2272, "src": "6322:7:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2766, "indexExpression": { "argumentTypes": null, "id": 2765, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2724, "src": "6330:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6322:14:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", "id": 2767, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "6339:5:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "6322:22:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2769, "nodeType": "ExpressionStatement", "src": "6322:22:16" }, { "expression": { "argumentTypes": null, "id": 2774, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2770, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2272, "src": "6354:7:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2772, "indexExpression": { "argumentTypes": null, "id": 2771, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2726, "src": "6362:8:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6354:17:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 2773, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "6374:4:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "6354:24:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2775, "nodeType": "ExpressionStatement", "src": "6354:24:16" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2777, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2724, "src": "6406:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 2776, "name": "OwnerRemoval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2244, "src": "6393:12:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 2778, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6393:19:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2779, "nodeType": "EmitStatement", "src": "6388:24:16" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2781, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2726, "src": "6441:8:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 2780, "name": "OwnerAddition", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2240, "src": "6427:13:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 2782, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6427:23:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2783, "nodeType": "EmitStatement", "src": "6422:28:16" } ] }, "documentation": { "id": 2722, "nodeType": "StructuredDocumentation", "src": "5777:194:16", "text": "@dev Allows to replace an owner with a new owner. Transaction has to be sent by wallet.\n @param owner Address of owner to be replaced.\n @param owner Address of new owner." }, "functionSelector": "e20056e6", "id": 2785, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 2729, "modifierName": { "argumentTypes": null, "id": 2728, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2316, "src": "6056:10:16", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "6056:10:16" }, { "arguments": [ { "argumentTypes": null, "id": 2731, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2724, "src": "6087:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "id": 2732, "modifierName": { "argumentTypes": null, "id": 2730, "name": "ownerExists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2345, "src": "6075:11:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "6075:18:16" }, { "arguments": [ { "argumentTypes": null, "id": 2734, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2726, "src": "6120:8:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "id": 2735, "modifierName": { "argumentTypes": null, "id": 2733, "name": "ownerDoesNotExist", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2330, "src": "6102:17:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "6102:27:16" } ], "name": "replaceOwner", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2727, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2724, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2785, "src": "5998:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2723, "name": "address", "nodeType": "ElementaryTypeName", "src": "5998:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2726, "mutability": "mutable", "name": "newOwner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2785, "src": "6013:16:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2725, "name": "address", "nodeType": "ElementaryTypeName", "src": "6013:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "5997:33:16" }, "returnParameters": { "id": 2736, "nodeType": "ParameterList", "parameters": [], "src": "6134:0:16" }, "scope": 3385, "src": "5976:481:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 2806, "nodeType": "Block", "src": "6770:80:16", "statements": [ { "expression": { "argumentTypes": null, "id": 2800, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 2798, "name": "required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2281, "src": "6780:8:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 2799, "name": "_required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2788, "src": "6791:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6780:20:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2801, "nodeType": "ExpressionStatement", "src": "6780:20:16" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2803, "name": "_required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2788, "src": "6833:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2802, "name": "RequirementChange", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2248, "src": "6815:17:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 2804, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6815:28:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2805, "nodeType": "EmitStatement", "src": "6810:33:16" } ] }, "documentation": { "id": 2786, "nodeType": "StructuredDocumentation", "src": "6463:167:16", "text": "@dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.\n @param _required Number of required confirmations." }, "functionSelector": "ba51a6df", "id": 2807, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 2791, "modifierName": { "argumentTypes": null, "id": 2790, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2316, "src": "6704:10:16", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "6704:10:16" }, { "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2793, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "6740:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2794, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6740:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 2795, "name": "_required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2788, "src": "6755:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 2796, "modifierName": { "argumentTypes": null, "id": 2792, "name": "validRequirement", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2462, "src": "6723:16:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", "typeString": "modifier (uint256,uint256)" } }, "nodeType": "ModifierInvocation", "src": "6723:42:16" } ], "name": "changeRequirement", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2789, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2788, "mutability": "mutable", "name": "_required", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2807, "src": "6662:17:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2787, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6662:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "6661:19:16" }, "returnParameters": { "id": 2797, "nodeType": "ParameterList", "parameters": [], "src": "6770:0:16" }, "scope": 3385, "src": "6635:215:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 2823, "nodeType": "Block", "src": "7124:89:16", "statements": [ { "expression": { "argumentTypes": null, "id": 2817, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 2815, "name": "lockSeconds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2206, "src": "7134:11:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 2816, "name": "_lockSeconds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2810, "src": "7148:12:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7134:26:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2818, "nodeType": "ExpressionStatement", "src": "7134:26:16" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2820, "name": "_lockSeconds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2810, "src": "7193:12:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2819, "name": "LockSecondsChange", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2258, "src": "7175:17:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 2821, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7175:31:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2822, "nodeType": "EmitStatement", "src": "7170:36:16" } ] }, "documentation": { "id": 2808, "nodeType": "StructuredDocumentation", "src": "6856:194:16", "text": "@dev Changes the duration of the time lock for transactions.\n @param _lockSeconds Duration needed after a transaction is confirmed and before it becomes executable, in seconds." }, "functionSelector": "8c22d5d3", "id": 2824, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 2813, "modifierName": { "argumentTypes": null, "id": 2812, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2316, "src": "7113:10:16", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "7113:10:16" } ], "name": "changeLockSeconds", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2811, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2810, "mutability": "mutable", "name": "_lockSeconds", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2824, "src": "7082:20:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2809, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7082:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7081:22:16" }, "returnParameters": { "id": 2814, "nodeType": "ParameterList", "parameters": [], "src": "7124:0:16" }, "scope": 3385, "src": "7055:158:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 2870, "nodeType": "Block", "src": "7690:343:16", "statements": [ { "expression": { "argumentTypes": null, "id": 2845, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 2843, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2841, "src": "7700:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 2844, "name": "transactionCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2283, "src": "7716:16:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7700:32:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2846, "nodeType": "ExpressionStatement", "src": "7700:32:16" }, { "expression": { "argumentTypes": null, "id": 2856, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2847, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2262, "src": "7742:12:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" } }, "id": 2849, "indexExpression": { "argumentTypes": null, "id": 2848, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2841, "src": "7755:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "7742:27:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2851, "name": "destination", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2827, "src": "7811:11:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 2852, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2829, "src": "7843:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 2853, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2831, "src": "7868:4:16", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, { "argumentTypes": null, "hexValue": "66616c7365", "id": 2854, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "7896:5:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 2850, "name": "Transaction", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2292, "src": "7772:11:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Transaction_$2292_storage_ptr_$", "typeString": "type(struct MultiSigWalletWithTimelock.Transaction storage pointer)" } }, "id": 2855, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [ "destination", "value", "data", "executed" ], "nodeType": "FunctionCall", "src": "7772:140:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.Transaction memory" } }, "src": "7742:170:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" } }, "id": 2857, "nodeType": "ExpressionStatement", "src": "7742:170:16" }, { "expression": { "argumentTypes": null, "id": 2860, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 2858, "name": "transactionCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2283, "src": "7922:16:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "hexValue": "31", "id": 2859, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7942:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "7922:21:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2861, "nodeType": "ExpressionStatement", "src": "7922:21:16" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2863, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2841, "src": "7969:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2862, "name": "Submission", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2222, "src": "7958:10:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 2864, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7958:25:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2865, "nodeType": "EmitStatement", "src": "7953:30:16" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2867, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2841, "src": "8012:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2866, "name": "confirmTransaction", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2939, "src": "7993:18:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 2868, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7993:33:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2869, "nodeType": "ExpressionStatement", "src": "7993:33:16" } ] }, "documentation": { "id": 2825, "nodeType": "StructuredDocumentation", "src": "7219:266:16", "text": "@dev Allows an owner to submit and confirm a transaction.\n @param destination Transaction target address.\n @param value Transaction ether value.\n @param data Transaction data payload.\n @return transactionId Returns transaction ID." }, "functionSelector": "c6427474", "id": 2871, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2834, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "7625:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2835, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7625:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "id": 2836, "modifierName": { "argumentTypes": null, "id": 2833, "name": "ownerExists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2345, "src": "7613:11:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "7613:23:16" }, { "arguments": [ { "argumentTypes": null, "id": 2838, "name": "destination", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2827, "src": "7645:11:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "id": 2839, "modifierName": { "argumentTypes": null, "id": 2837, "name": "notNull", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2434, "src": "7637:7:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "7637:20:16" } ], "name": "submitTransaction", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2832, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2827, "mutability": "mutable", "name": "destination", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2871, "src": "7526:19:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2826, "name": "address", "nodeType": "ElementaryTypeName", "src": "7526:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2829, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2871, "src": "7555:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2828, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7555:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2831, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2871, "src": "7578:19:16", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 2830, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7578:5:16", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "7516:87:16" }, "returnParameters": { "id": 2842, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2841, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2871, "src": "7667:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2840, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7667:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7666:23:16" }, "scope": 3385, "src": "7490:543:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 2938, "nodeType": "Block", "src": "8337:463:16", "statements": [ { "expression": { "argumentTypes": null, "id": 2896, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2889, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2268, "src": "8347:13:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(uint256 => mapping(address => bool))" } }, "id": 2893, "indexExpression": { "argumentTypes": null, "id": 2890, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2874, "src": "8361:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8347:28:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2894, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2891, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "8376:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8376:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "8347:40:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 2895, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "8390:4:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "8347:47:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2897, "nodeType": "ExpressionStatement", "src": "8347:47:16" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2899, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "8422:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2900, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8422:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 2901, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2874, "src": "8434:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2898, "name": "Confirmation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2212, "src": "8409:12:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 2902, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8409:39:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2903, "nodeType": "EmitStatement", "src": "8404:44:16" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2917, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2912, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2905, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2874, "src": "8488:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2904, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3203, "src": "8476:11:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, "id": 2906, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8476:26:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2911, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2907, "name": "unlockTimes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2276, "src": "8518:11:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, "id": 2909, "indexExpression": { "argumentTypes": null, "id": 2908, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2874, "src": "8530:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8518:26:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 2910, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8548:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "8518:31:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "8476:73:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "id": 2916, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "8565:31:16", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2914, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2874, "src": "8582:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2913, "name": "isEmergencyCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3027, "src": "8566:15:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, "id": 2915, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8566:30:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "8476:120:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2937, "nodeType": "IfStatement", "src": "8459:335:16", "trueBody": { "id": 2936, "nodeType": "Block", "src": "8607:187:16", "statements": [ { "assignments": [ 2919 ], "declarations": [ { "constant": false, "id": 2919, "mutability": "mutable", "name": "unlockTime", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2936, "src": "8621:18:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2918, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8621:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 2924, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2923, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2920, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "8642:5:16", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 2921, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8642:15:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 2922, "name": "lockSeconds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2206, "src": "8660:11:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "8642:29:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "8621:50:16" }, { "expression": { "argumentTypes": null, "id": 2929, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2925, "name": "unlockTimes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2276, "src": "8685:11:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, "id": 2927, "indexExpression": { "argumentTypes": null, "id": 2926, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2874, "src": "8697:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "8685:26:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 2928, "name": "unlockTime", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2919, "src": "8714:10:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "8685:39:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2930, "nodeType": "ExpressionStatement", "src": "8685:39:16" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2932, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2874, "src": "8757:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 2933, "name": "unlockTime", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2919, "src": "8772:10:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2931, "name": "UnlockTimeSet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2254, "src": "8743:13:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, "id": 2934, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8743:40:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2935, "nodeType": "EmitStatement", "src": "8738:45:16" } ] } } ] }, "documentation": { "id": 2872, "nodeType": "StructuredDocumentation", "src": "8039:102:16", "text": "@dev Allows an owner to confirm a transaction.\n @param transactionId Transaction ID." }, "functionSelector": "c01a8c84", "id": 2939, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2877, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "8232:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2878, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8232:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "id": 2879, "modifierName": { "argumentTypes": null, "id": 2876, "name": "ownerExists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2345, "src": "8220:11:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "8220:23:16" }, { "arguments": [ { "argumentTypes": null, "id": 2881, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2874, "src": "8270:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 2882, "modifierName": { "argumentTypes": null, "id": 2880, "name": "transactionExists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2365, "src": "8252:17:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", "src": "8252:32:16" }, { "arguments": [ { "argumentTypes": null, "id": 2884, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2874, "src": "8306:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2885, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "8321:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2886, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8321:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "id": 2887, "modifierName": { "argumentTypes": null, "id": 2883, "name": "notConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2402, "src": "8293:12:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$_t_address_$", "typeString": "modifier (uint256,address)" } }, "nodeType": "ModifierInvocation", "src": "8293:39:16" } ], "name": "confirmTransaction", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2875, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2874, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2939, "src": "8174:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2873, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8174:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "8173:23:16" }, "returnParameters": { "id": 2888, "nodeType": "ParameterList", "parameters": [], "src": "8337:0:16" }, "scope": 3385, "src": "8146:654:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 3026, "nodeType": "Block", "src": "8883:636:16", "statements": [ { "assignments": [ 2947 ], "declarations": [ { "constant": false, "id": 2947, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3026, "src": "8893:17:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 2946, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8893:5:16", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "id": 2952, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2948, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2262, "src": "8913:12:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" } }, "id": 2950, "indexExpression": { "argumentTypes": null, "id": 2949, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2941, "src": "8926:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8913:27:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" } }, "id": 2951, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": 2289, "src": "8913:32:16", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "8893:52:16" }, { "body": { "id": 3022, "nodeType": "Block", "src": "9008:482:16", "statements": [ { "assignments": [ 2965 ], "declarations": [ { "constant": false, "id": 2965, "mutability": "mutable", "name": "emergencyCall", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3022, "src": "9022:34:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall" }, "typeName": { "contractScope": null, "id": 2964, "name": "EmergencyCall", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2297, "src": "9022:13:16", "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall" } }, "value": null, "visibility": "internal" } ], "id": 2969, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2966, "name": "emergencyCalls", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2300, "src": "9059:14:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" } }, "id": 2968, "indexExpression": { "argumentTypes": null, "id": 2967, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2954, "src": "9074:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9059:17:16", "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_storage", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "9022:54:16" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3017, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3008, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2999, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2990, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2981, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2976, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2970, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2947, "src": "9112:4:16", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 2971, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9112:11:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2975, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2972, "name": "emergencyCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2965, "src": "9127:13:16", "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } }, "id": 2973, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "paramsBytesCount", "nodeType": "MemberAccess", "referencedDeclaration": 2296, "src": "9127:30:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "34", "id": 2974, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9160:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, "src": "9127:34:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9112:49:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2980, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2977, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2947, "src": "9181:4:16", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 2978, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9181:11:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "34", "id": 2979, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9196:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, "src": "9181:16:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "9112:85:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, "id": 2989, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2982, "name": "emergencyCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2965, "src": "9217:13:16", "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } }, "id": 2983, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", "referencedDeclaration": 2294, "src": "9217:22:16", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 2985, "indexExpression": { "argumentTypes": null, "hexValue": "30", "id": 2984, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9240:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9217:25:16", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2986, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2947, "src": "9246:4:16", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 2988, "indexExpression": { "argumentTypes": null, "hexValue": "30", "id": 2987, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9251:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9246:7:16", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, "src": "9217:36:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "9112:141:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, "id": 2998, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2991, "name": "emergencyCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2965, "src": "9273:13:16", "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } }, "id": 2992, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", "referencedDeclaration": 2294, "src": "9273:22:16", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 2994, "indexExpression": { "argumentTypes": null, "hexValue": "31", "id": 2993, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9296:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9273:25:16", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2995, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2947, "src": "9302:4:16", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 2997, "indexExpression": { "argumentTypes": null, "hexValue": "31", "id": 2996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9307:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9302:7:16", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, "src": "9273:36:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "9112:197:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, "id": 3007, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3000, "name": "emergencyCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2965, "src": "9329:13:16", "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } }, "id": 3001, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", "referencedDeclaration": 2294, "src": "9329:22:16", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 3003, "indexExpression": { "argumentTypes": null, "hexValue": "32", "id": 3002, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9352:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9329:25:16", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3004, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2947, "src": "9358:4:16", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 3006, "indexExpression": { "argumentTypes": null, "hexValue": "32", "id": 3005, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9363:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9358:7:16", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, "src": "9329:36:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "9112:253:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, "id": 3016, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3009, "name": "emergencyCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2965, "src": "9385:13:16", "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } }, "id": 3010, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", "referencedDeclaration": 2294, "src": "9385:22:16", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 3012, "indexExpression": { "argumentTypes": null, "hexValue": "33", "id": 3011, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9408:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9385:25:16", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3013, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2947, "src": "9414:4:16", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 3015, "indexExpression": { "argumentTypes": null, "hexValue": "33", "id": 3014, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9419:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9414:7:16", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, "src": "9385:36:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "9112:309:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 3021, "nodeType": "IfStatement", "src": "9091:389:16", "trueBody": { "id": 3020, "nodeType": "Block", "src": "9436:44:16", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3018, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "9461:4:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 2945, "id": 3019, "nodeType": "Return", "src": "9454:11:16" } ] } } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2957, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2954, "src": "8976:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2958, "name": "emergencyCalls", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2300, "src": "8980:14:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" } }, "id": 2959, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8980:21:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "8976:25:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3023, "initializationExpression": { "assignments": [ 2954 ], "declarations": [ { "constant": false, "id": 2954, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3023, "src": "8961:9:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2953, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8961:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 2956, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 2955, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8973:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "8961:13:16" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 2962, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "9003:3:16", "subExpression": { "argumentTypes": null, "id": 2961, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2954, "src": "9003:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2963, "nodeType": "ExpressionStatement", "src": "9003:3:16" }, "nodeType": "ForStatement", "src": "8956:534:16" }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", "id": 3024, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "9507:5:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "functionReturnParameters": 2945, "id": 3025, "nodeType": "Return", "src": "9500:12:16" } ] }, "documentation": null, "id": 3027, "implemented": true, "kind": "function", "modifiers": [], "name": "isEmergencyCall", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2942, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2941, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3027, "src": "8831:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2940, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8831:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "8830:23:16" }, "returnParameters": { "id": 2945, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2944, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3027, "src": "8877:4:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2943, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8877:4:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "8876:6:16" }, "scope": 3385, "src": "8806:713:16", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { "id": 3050, "nodeType": "Block", "src": "9620:207:16", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3043, "name": "funcName", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3029, "src": "9732:8:16", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "argumentTypes": null, "id": 3041, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "9715:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 3042, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9715:16:16", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 3044, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9715:26:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 3040, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "9705:9:16", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 3045, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9705:37:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "id": 3046, "name": "_paramsBytesCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3031, "src": "9778:17:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3039, "name": "EmergencyCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2297, "src": "9663:13:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_EmergencyCall_$2297_storage_ptr_$", "typeString": "type(struct MultiSigWalletWithTimelock.EmergencyCall storage pointer)" } }, "id": 3047, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [ "selector", "paramsBytesCount" ], "nodeType": "FunctionCall", "src": "9663:147:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } ], "expression": { "argumentTypes": null, "id": 3036, "name": "emergencyCalls", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2300, "src": "9630:14:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" } }, "id": 3038, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9630:19:16", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_EmergencyCall_$2297_storage_$returns$__$", "typeString": "function (struct MultiSigWalletWithTimelock.EmergencyCall storage ref)" } }, "id": 3048, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9630:190:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3049, "nodeType": "ExpressionStatement", "src": "9630:190:16" } ] }, "documentation": null, "functionSelector": "f075fb90", "id": 3051, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 3034, "modifierName": { "argumentTypes": null, "id": 3033, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2316, "src": "9609:10:16", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "9609:10:16" } ], "name": "addEmergencyCall", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3032, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3029, "mutability": "mutable", "name": "funcName", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3051, "src": "9551:22:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3028, "name": "string", "nodeType": "ElementaryTypeName", "src": "9551:6:16", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3031, "mutability": "mutable", "name": "_paramsBytesCount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3051, "src": "9575:25:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3030, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9575:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "9550:51:16" }, "returnParameters": { "id": 3035, "nodeType": "ParameterList", "parameters": [], "src": "9620:0:16" }, "scope": 3385, "src": "9525:302:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 3084, "nodeType": "Block", "src": "10142:117:16", "statements": [ { "expression": { "argumentTypes": null, "id": 3076, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3069, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2268, "src": "10152:13:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(uint256 => mapping(address => bool))" } }, "id": 3073, "indexExpression": { "argumentTypes": null, "id": 3070, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3054, "src": "10166:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10152:28:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 3074, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3071, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "10181:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3072, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10181:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "10152:40:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", "id": 3075, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "10195:5:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "10152:48:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3077, "nodeType": "ExpressionStatement", "src": "10152:48:16" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3079, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "10226:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3080, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10226:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 3081, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3054, "src": "10238:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3078, "name": "Revocation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2218, "src": "10215:10:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 3082, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10215:37:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3083, "nodeType": "EmitStatement", "src": "10210:42:16" } ] }, "documentation": { "id": 3052, "nodeType": "StructuredDocumentation", "src": "9833:120:16", "text": "@dev Allows an owner to revoke a confirmation for a transaction.\n @param transactionId Transaction ID." }, "functionSelector": "20ea8d86", "id": 3085, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3057, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "10046:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3058, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10046:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "id": 3059, "modifierName": { "argumentTypes": null, "id": 3056, "name": "ownerExists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2345, "src": "10034:11:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "10034:23:16" }, { "arguments": [ { "argumentTypes": null, "id": 3061, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3054, "src": "10076:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3062, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "10091:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3063, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10091:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "id": 3064, "modifierName": { "argumentTypes": null, "id": 3060, "name": "confirmed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2384, "src": "10066:9:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$_t_address_$", "typeString": "modifier (uint256,address)" } }, "nodeType": "ModifierInvocation", "src": "10066:36:16" }, { "arguments": [ { "argumentTypes": null, "id": 3066, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3054, "src": "10123:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 3067, "modifierName": { "argumentTypes": null, "id": 3065, "name": "notExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2417, "src": "10111:11:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", "src": "10111:26:16" } ], "name": "revokeConfirmation", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3055, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3054, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3085, "src": "9986:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3053, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9986:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "9985:23:16" }, "returnParameters": { "id": 3068, "nodeType": "ParameterList", "parameters": [], "src": "10142:0:16" }, "scope": 3385, "src": "9958:301:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 3154, "nodeType": "Block", "src": "10519:594:16", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3104, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3099, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "10537:5:16", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 3100, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10537:15:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3101, "name": "unlockTimes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2276, "src": "10556:11:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, "id": 3103, "indexExpression": { "argumentTypes": null, "id": 3102, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3088, "src": "10568:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10556:26:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10537:45:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "5452414e53414354494f4e5f4e4545445f544f5f554e4c4f434b", "id": 3105, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10584:28:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_0e775be8eed223e88abd3716be242e9114c0d3a20959ded3addfe470831caccb", "typeString": "literal_string \"TRANSACTION_NEED_TO_UNLOCK\"" }, "value": "TRANSACTION_NEED_TO_UNLOCK" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_0e775be8eed223e88abd3716be242e9114c0d3a20959ded3addfe470831caccb", "typeString": "literal_string \"TRANSACTION_NEED_TO_UNLOCK\"" } ], "id": 3098, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "10529:7:16", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3106, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10529:84:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3107, "nodeType": "ExpressionStatement", "src": "10529:84:16" }, { "condition": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3109, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3088, "src": "10640:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3108, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3203, "src": "10628:11:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, "id": 3110, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10628:26:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 3153, "nodeType": "IfStatement", "src": "10624:483:16", "trueBody": { "id": 3152, "nodeType": "Block", "src": "10656:451:16", "statements": [ { "assignments": [ 3112 ], "declarations": [ { "constant": false, "id": 3112, "mutability": "mutable", "name": "transaction", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3152, "src": "10670:31:16", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.Transaction" }, "typeName": { "contractScope": null, "id": 3111, "name": "Transaction", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2292, "src": "10670:11:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.Transaction" } }, "value": null, "visibility": "internal" } ], "id": 3116, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3113, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2262, "src": "10704:12:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" } }, "id": 3115, "indexExpression": { "argumentTypes": null, "id": 3114, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3088, "src": "10717:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10704:27:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "10670:61:16" }, { "expression": { "argumentTypes": null, "id": 3121, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3117, "name": "transaction", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3112, "src": "10745:11:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage pointer" } }, "id": 3119, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "executed", "nodeType": "MemberAccess", "referencedDeclaration": 2291, "src": "10745:20:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 3120, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "10768:4:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "10745:27:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3122, "nodeType": "ExpressionStatement", "src": "10745:27:16" }, { "assignments": [ 3124, null ], "declarations": [ { "constant": false, "id": 3124, "mutability": "mutable", "name": "success", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3152, "src": "10787:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3123, "name": "bool", "nodeType": "ElementaryTypeName", "src": "10787:4:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" }, null ], "id": 3134, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3131, "name": "transaction", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3112, "src": "10877:11:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage pointer" } }, "id": 3132, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": 2289, "src": "10877:16:16", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3125, "name": "transaction", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3112, "src": "10805:11:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage pointer" } }, "id": 3126, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "destination", "nodeType": "MemberAccess", "referencedDeclaration": 2285, "src": "10805:23:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3127, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "call", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10805:28:16", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, "id": 3130, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "names": [ "value" ], "nodeType": "FunctionCallOptions", "options": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3128, "name": "transaction", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3112, "src": "10841:11:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage pointer" } }, "id": 3129, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": 2287, "src": "10841:17:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "src": "10805:54:16", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, "id": 3133, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10805:102:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "10786:121:16" }, { "condition": { "argumentTypes": null, "id": 3135, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3124, "src": "10925:7:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 3150, "nodeType": "Block", "src": "10982:115:16", "statements": [ { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3141, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3088, "src": "11022:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3140, "name": "ExecutionFailure", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2230, "src": "11005:16:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 3142, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11005:31:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3143, "nodeType": "EmitStatement", "src": "11000:36:16" }, { "expression": { "argumentTypes": null, "id": 3148, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3144, "name": "transaction", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3112, "src": "11054:11:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage pointer" } }, "id": 3146, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "executed", "nodeType": "MemberAccess", "referencedDeclaration": 2291, "src": "11054:20:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", "id": 3147, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "11077:5:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "11054:28:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3149, "nodeType": "ExpressionStatement", "src": "11054:28:16" } ] }, "id": 3151, "nodeType": "IfStatement", "src": "10921:176:16", "trueBody": { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3137, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3088, "src": "10949:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3136, "name": "Execution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2226, "src": "10939:9:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 3138, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10939:24:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3139, "nodeType": "EmitStatement", "src": "10934:29:16" } } ] } } ] }, "documentation": { "id": 3086, "nodeType": "StructuredDocumentation", "src": "10265:110:16", "text": "@dev Allows anyone to execute a confirmed transaction.\n @param transactionId Transaction ID." }, "functionSelector": "ee22610b", "id": 3155, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3091, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "10468:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3092, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10468:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "id": 3093, "modifierName": { "argumentTypes": null, "id": 3090, "name": "ownerExists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2345, "src": "10456:11:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "10456:23:16" }, { "arguments": [ { "argumentTypes": null, "id": 3095, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3088, "src": "10500:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 3096, "modifierName": { "argumentTypes": null, "id": 3094, "name": "notExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2417, "src": "10488:11:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", "src": "10488:26:16" } ], "name": "executeTransaction", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3089, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3088, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3155, "src": "10408:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3087, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10408:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "10407:23:16" }, "returnParameters": { "id": 3097, "nodeType": "ParameterList", "parameters": [], "src": "10519:0:16" }, "scope": 3385, "src": "10380:733:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 3202, "nodeType": "Block", "src": "11341:304:16", "statements": [ { "assignments": [ 3164 ], "declarations": [ { "constant": false, "id": 3164, "mutability": "mutable", "name": "count", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3202, "src": "11351:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3163, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11351:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 3166, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 3165, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11367:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "11351:17:16" }, { "body": { "id": 3198, "nodeType": "Block", "src": "11423:193:16", "statements": [ { "condition": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3178, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2268, "src": "11441:13:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(uint256 => mapping(address => bool))" } }, "id": 3180, "indexExpression": { "argumentTypes": null, "id": 3179, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3158, "src": "11455:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11441:28:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 3184, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3181, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "11470:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 3183, "indexExpression": { "argumentTypes": null, "id": 3182, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3168, "src": "11477:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11470:9:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11441:39:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 3190, "nodeType": "IfStatement", "src": "11437:88:16", "trueBody": { "id": 3189, "nodeType": "Block", "src": "11482:43:16", "statements": [ { "expression": { "argumentTypes": null, "id": 3187, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3185, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3164, "src": "11500:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "hexValue": "31", "id": 3186, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11509:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "11500:10:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3188, "nodeType": "ExpressionStatement", "src": "11500:10:16" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3191, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3164, "src": "11543:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 3192, "name": "required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2281, "src": "11552:8:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11543:17:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 3197, "nodeType": "IfStatement", "src": "11539:67:16", "trueBody": { "id": 3196, "nodeType": "Block", "src": "11562:44:16", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3194, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "11587:4:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 3162, "id": 3195, "nodeType": "Return", "src": "11580:11:16" } ] } } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3174, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3171, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3168, "src": "11399:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3172, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "11403:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 3173, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11403:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11399:17:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3199, "initializationExpression": { "assignments": [ 3168 ], "declarations": [ { "constant": false, "id": 3168, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3199, "src": "11384:9:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3167, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11384:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 3170, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 3169, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11396:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "11384:13:16" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 3176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "11418:3:16", "subExpression": { "argumentTypes": null, "id": 3175, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3168, "src": "11418:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3177, "nodeType": "ExpressionStatement", "src": "11418:3:16" }, "nodeType": "ForStatement", "src": "11379:237:16" }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", "id": 3200, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "11633:5:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "functionReturnParameters": 3162, "id": 3201, "nodeType": "Return", "src": "11626:12:16" } ] }, "documentation": { "id": 3156, "nodeType": "StructuredDocumentation", "src": "11119:146:16", "text": "@dev Returns the confirmation status of a transaction.\n @param transactionId Transaction ID.\n @return Confirmation status." }, "functionSelector": "784547a7", "id": 3203, "implemented": true, "kind": "function", "modifiers": [], "name": "isConfirmed", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3159, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3158, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3203, "src": "11291:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3157, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11291:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "11290:23:16" }, "returnParameters": { "id": 3162, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3161, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3203, "src": "11335:4:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3160, "name": "bool", "nodeType": "ElementaryTypeName", "src": "11335:4:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "11334:6:16" }, "scope": 3385, "src": "11270:375:16", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { "id": 3237, "nodeType": "Block", "src": "11934:172:16", "statements": [ { "body": { "id": 3235, "nodeType": "Block", "src": "11988:112:16", "statements": [ { "condition": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3222, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2268, "src": "12006:13:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(uint256 => mapping(address => bool))" } }, "id": 3224, "indexExpression": { "argumentTypes": null, "id": 3223, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3206, "src": "12020:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12006:28:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 3228, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3225, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "12035:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 3227, "indexExpression": { "argumentTypes": null, "id": 3226, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3212, "src": "12042:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12035:9:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12006:39:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 3234, "nodeType": "IfStatement", "src": "12002:88:16", "trueBody": { "id": 3233, "nodeType": "Block", "src": "12047:43:16", "statements": [ { "expression": { "argumentTypes": null, "id": 3231, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3229, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3209, "src": "12065:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "hexValue": "31", "id": 3230, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12074:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "12065:10:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3232, "nodeType": "ExpressionStatement", "src": "12065:10:16" } ] } } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3218, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3215, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3212, "src": "11964:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3216, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "11968:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 3217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11968:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11964:17:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3236, "initializationExpression": { "assignments": [ 3212 ], "declarations": [ { "constant": false, "id": 3212, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3236, "src": "11949:9:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3211, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11949:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 3214, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 3213, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11961:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "11949:13:16" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 3220, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "11983:3:16", "subExpression": { "argumentTypes": null, "id": 3219, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3212, "src": "11983:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3221, "nodeType": "ExpressionStatement", "src": "11983:3:16" }, "nodeType": "ForStatement", "src": "11944:156:16" } ] }, "documentation": { "id": 3204, "nodeType": "StructuredDocumentation", "src": "11682:156:16", "text": "@dev Returns number of confirmations of a transaction.\n @param transactionId Transaction ID.\n @return count Number of confirmations." }, "functionSelector": "8b51d13f", "id": 3238, "implemented": true, "kind": "function", "modifiers": [], "name": "getConfirmationCount", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3207, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3206, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3238, "src": "11873:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3205, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11873:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "11872:23:16" }, "returnParameters": { "id": 3210, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3209, "mutability": "mutable", "name": "count", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3238, "src": "11919:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3208, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11919:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "11918:15:16" }, "scope": 3385, "src": "11843:263:16", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 3282, "nodeType": "Block", "src": "12503:216:16", "statements": [ { "body": { "id": 3280, "nodeType": "Block", "src": "12560:153:16", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3273, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3264, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3258, "name": "pending", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3241, "src": "12579:7:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "id": 3263, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "12590:25:16", "subExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3259, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2262, "src": "12591:12:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" } }, "id": 3261, "indexExpression": { "argumentTypes": null, "id": 3260, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3249, "src": "12604:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12591:15:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" } }, "id": 3262, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "executed", "nodeType": "MemberAccess", "referencedDeclaration": 2291, "src": "12591:24:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "12579:36:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 3265, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "12578:38:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3271, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3266, "name": "executed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3243, "src": "12621:8:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3267, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2262, "src": "12633:12:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" } }, "id": 3269, "indexExpression": { "argumentTypes": null, "id": 3268, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3249, "src": "12646:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12633:15:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" } }, "id": 3270, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "executed", "nodeType": "MemberAccess", "referencedDeclaration": 2291, "src": "12633:24:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "12621:36:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 3272, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "12620:38:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "12578:80:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 3279, "nodeType": "IfStatement", "src": "12574:129:16", "trueBody": { "id": 3278, "nodeType": "Block", "src": "12660:43:16", "statements": [ { "expression": { "argumentTypes": null, "id": 3276, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3274, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3246, "src": "12678:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "hexValue": "31", "id": 3275, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12687:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "12678:10:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3277, "nodeType": "ExpressionStatement", "src": "12678:10:16" } ] } } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3254, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3252, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3249, "src": "12533:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 3253, "name": "transactionCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2283, "src": "12537:16:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "12533:20:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3281, "initializationExpression": { "assignments": [ 3249 ], "declarations": [ { "constant": false, "id": 3249, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3281, "src": "12518:9:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3248, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12518:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 3251, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 3250, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12530:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "12518:13:16" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 3256, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "12555:3:16", "subExpression": { "argumentTypes": null, "id": 3255, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3249, "src": "12555:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3257, "nodeType": "ExpressionStatement", "src": "12555:3:16" }, "nodeType": "ForStatement", "src": "12513:200:16" } ] }, "documentation": { "id": 3239, "nodeType": "StructuredDocumentation", "src": "12112:262:16", "text": "@dev Returns total number of transactions after filers are applied.\n @param pending Include pending transactions.\n @param executed Include executed transactions.\n @return count Total number of transactions after filters are applied." }, "functionSelector": "54741525", "id": 3283, "implemented": true, "kind": "function", "modifiers": [], "name": "getTransactionCount", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3244, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3241, "mutability": "mutable", "name": "pending", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3283, "src": "12408:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3240, "name": "bool", "nodeType": "ElementaryTypeName", "src": "12408:4:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3243, "mutability": "mutable", "name": "executed", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3283, "src": "12422:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3242, "name": "bool", "nodeType": "ElementaryTypeName", "src": "12422:4:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "12407:29:16" }, "returnParameters": { "id": 3247, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3246, "mutability": "mutable", "name": "count", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3283, "src": "12484:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3245, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12484:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "12483:15:16" }, "scope": 3385, "src": "12379:340:16", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 3292, "nodeType": "Block", "src": "12872:30:16", "statements": [ { "expression": { "argumentTypes": null, "id": 3290, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "12889:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "functionReturnParameters": 3289, "id": 3291, "nodeType": "Return", "src": "12882:13:16" } ] }, "documentation": { "id": 3284, "nodeType": "StructuredDocumentation", "src": "12725:80:16", "text": "@dev Returns list of owners.\n @return List of owner addresses." }, "functionSelector": "a0e67e2b", "id": 3293, "implemented": true, "kind": "function", "modifiers": [], "name": "getOwners", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3285, "nodeType": "ParameterList", "parameters": [], "src": "12828:2:16" }, "returnParameters": { "id": 3289, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3288, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3293, "src": "12854:16:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 3286, "name": "address", "nodeType": "ElementaryTypeName", "src": "12854:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3287, "length": null, "nodeType": "ArrayTypeName", "src": "12854:9:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], "src": "12853:18:16" }, "scope": 3385, "src": "12810:92:16", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 3383, "nodeType": "Block", "src": "13235:491:16", "statements": [ { "assignments": [ 3306 ], "declarations": [ { "constant": false, "id": 3306, "mutability": "mutable", "name": "confirmationsTemp", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3383, "src": "13245:34:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 3304, "name": "address", "nodeType": "ElementaryTypeName", "src": "13245:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3305, "length": null, "nodeType": "ArrayTypeName", "src": "13245:9:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], "id": 3313, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3310, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "13296:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 3311, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "13296:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3309, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "13282:13:16", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { "id": 3307, "name": "address", "nodeType": "ElementaryTypeName", "src": "13286:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3308, "length": null, "nodeType": "ArrayTypeName", "src": "13286:9:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, "id": 3312, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13282:28:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", "src": "13245:65:16" }, { "assignments": [ 3315 ], "declarations": [ { "constant": false, "id": 3315, "mutability": "mutable", "name": "count", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3383, "src": "13320:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3314, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "13320:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 3317, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 3316, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13336:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "13320:17:16" }, { "assignments": [ 3319 ], "declarations": [ { "constant": false, "id": 3319, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3383, "src": "13347:9:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3318, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "13347:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 3320, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "13347:9:16" }, { "body": { "id": 3353, "nodeType": "Block", "src": "13403:166:16", "statements": [ { "condition": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3332, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2268, "src": "13421:13:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(uint256 => mapping(address => bool))" } }, "id": 3334, "indexExpression": { "argumentTypes": null, "id": 3333, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3296, "src": "13435:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13421:28:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 3338, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3335, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "13450:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 3337, "indexExpression": { "argumentTypes": null, "id": 3336, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "13457:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13450:9:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13421:39:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 3352, "nodeType": "IfStatement", "src": "13417:142:16", "trueBody": { "id": 3351, "nodeType": "Block", "src": "13462:97:16", "statements": [ { "expression": { "argumentTypes": null, "id": 3345, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3339, "name": "confirmationsTemp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3306, "src": "13480:17:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 3341, "indexExpression": { "argumentTypes": null, "id": 3340, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3315, "src": "13498:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "13480:24:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3342, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "13507:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 3344, "indexExpression": { "argumentTypes": null, "id": 3343, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "13514:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13507:9:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "13480:36:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3346, "nodeType": "ExpressionStatement", "src": "13480:36:16" }, { "expression": { "argumentTypes": null, "id": 3349, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3347, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3315, "src": "13534:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "hexValue": "31", "id": 3348, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13543:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "13534:10:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3350, "nodeType": "ExpressionStatement", "src": "13534:10:16" } ] } } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3328, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3325, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "13379:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3326, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "13383:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 3327, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "13383:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "13379:17:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3354, "initializationExpression": { "expression": { "argumentTypes": null, "id": 3323, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3321, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "13372:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 3322, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13376:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "13372:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3324, "nodeType": "ExpressionStatement", "src": "13372:5:16" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 3330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "13398:3:16", "subExpression": { "argumentTypes": null, "id": 3329, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "13398:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3331, "nodeType": "ExpressionStatement", "src": "13398:3:16" }, "nodeType": "ForStatement", "src": "13367:202:16" }, { "expression": { "argumentTypes": null, "id": 3361, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3355, "name": "_confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3300, "src": "13579:14:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3359, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3315, "src": "13610:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3358, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "13596:13:16", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { "id": 3356, "name": "address", "nodeType": "ElementaryTypeName", "src": "13600:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3357, "length": null, "nodeType": "ArrayTypeName", "src": "13600:9:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, "id": 3360, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13596:20:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "src": "13579:37:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 3362, "nodeType": "ExpressionStatement", "src": "13579:37:16" }, { "body": { "id": 3381, "nodeType": "Block", "src": "13655:65:16", "statements": [ { "expression": { "argumentTypes": null, "id": 3379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3373, "name": "_confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3300, "src": "13669:14:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 3375, "indexExpression": { "argumentTypes": null, "id": 3374, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "13684:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "13669:17:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3376, "name": "confirmationsTemp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3306, "src": "13689:17:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 3378, "indexExpression": { "argumentTypes": null, "id": 3377, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "13707:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13689:20:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "13669:40:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3380, "nodeType": "ExpressionStatement", "src": "13669:40:16" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3369, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3367, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "13639:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 3368, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3315, "src": "13643:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "13639:9:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3382, "initializationExpression": { "expression": { "argumentTypes": null, "id": 3365, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3363, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "13632:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 3364, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13636:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "13632:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3366, "nodeType": "ExpressionStatement", "src": "13632:5:16" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 3371, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "13650:3:16", "subExpression": { "argumentTypes": null, "id": 3370, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "13650:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3372, "nodeType": "ExpressionStatement", "src": "13650:3:16" }, "nodeType": "ForStatement", "src": "13627:93:16" } ] }, "documentation": { "id": 3294, "nodeType": "StructuredDocumentation", "src": "12908:189:16", "text": "@dev Returns array with owner addresses, which confirmed transaction.\n @param transactionId Transaction ID.\n @return _confirmations Returns array of owner addresses." }, "functionSelector": "b5dc40c3", "id": 3384, "implemented": true, "kind": "function", "modifiers": [], "name": "getConfirmations", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3297, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3296, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3384, "src": "13128:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3295, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "13128:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "13127:23:16" }, "returnParameters": { "id": 3301, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3300, "mutability": "mutable", "name": "_confirmations", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3384, "src": "13198:31:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 3298, "name": "address", "nodeType": "ElementaryTypeName", "src": "13198:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3299, "length": null, "nodeType": "ArrayTypeName", "src": "13198:9:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], "src": "13197:33:16" }, "scope": 3385, "src": "13102:624:16", "stateMutability": "view", "virtual": false, "visibility": "external" } ], "scope": 3386, "src": "204:13524:16" } ], "src": "145:13584:16" }, "legacyAST": { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/MultiSig.sol", "exportedSymbols": { "MultiSigWalletWithTimelock": [ 3385 ] }, "id": 3386, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ { "id": 2199, "literals": [ "solidity", "0.6", ".9" ], "nodeType": "PragmaDirective", "src": "145:22:16" }, { "id": 2200, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", "src": "168:33:16" }, { "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 3385, "linearizedBaseContracts": [ 3385 ], "name": "MultiSigWalletWithTimelock", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, "functionSelector": "d74f8edd", "id": 2203, "mutability": "constant", "name": "MAX_OWNER_COUNT", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3385, "src": "246:44:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2201, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "246:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "hexValue": "3530", "id": 2202, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "288:2:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_50_by_1", "typeString": "int_const 50" }, "value": "50" }, "visibility": "public" }, { "constant": false, "functionSelector": "bfa6fddb", "id": 2206, "mutability": "mutable", "name": "lockSeconds", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3385, "src": "296:34:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2204, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "296:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "hexValue": "3836343030", "id": 2205, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "325:5:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_86400_by_1", "typeString": "int_const 86400" }, "value": "86400" }, "visibility": "public" }, { "anonymous": false, "documentation": null, "id": 2212, "name": "Confirmation", "nodeType": "EventDefinition", "parameters": { "id": 2211, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2208, "indexed": true, "mutability": "mutable", "name": "sender", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2212, "src": "356:22:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2207, "name": "address", "nodeType": "ElementaryTypeName", "src": "356:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2210, "indexed": true, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2212, "src": "380:29:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2209, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "380:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "355:55:16" }, "src": "337:74:16" }, { "anonymous": false, "documentation": null, "id": 2218, "name": "Revocation", "nodeType": "EventDefinition", "parameters": { "id": 2217, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2214, "indexed": true, "mutability": "mutable", "name": "sender", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2218, "src": "433:22:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2213, "name": "address", "nodeType": "ElementaryTypeName", "src": "433:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2216, "indexed": true, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2218, "src": "457:29:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2215, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "457:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "432:55:16" }, "src": "416:72:16" }, { "anonymous": false, "documentation": null, "id": 2222, "name": "Submission", "nodeType": "EventDefinition", "parameters": { "id": 2221, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2220, "indexed": true, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2222, "src": "510:29:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2219, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "510:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "509:31:16" }, "src": "493:48:16" }, { "anonymous": false, "documentation": null, "id": 2226, "name": "Execution", "nodeType": "EventDefinition", "parameters": { "id": 2225, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2224, "indexed": true, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2226, "src": "562:29:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2223, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "562:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "561:31:16" }, "src": "546:47:16" }, { "anonymous": false, "documentation": null, "id": 2230, "name": "ExecutionFailure", "nodeType": "EventDefinition", "parameters": { "id": 2229, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2228, "indexed": true, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2230, "src": "621:29:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2227, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "621:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "620:31:16" }, "src": "598:54:16" }, { "anonymous": false, "documentation": null, "id": 2236, "name": "Deposit", "nodeType": "EventDefinition", "parameters": { "id": 2235, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2232, "indexed": true, "mutability": "mutable", "name": "sender", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2236, "src": "671:22:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2231, "name": "address", "nodeType": "ElementaryTypeName", "src": "671:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2234, "indexed": false, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2236, "src": "695:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2233, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "695:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "670:39:16" }, "src": "657:53:16" }, { "anonymous": false, "documentation": null, "id": 2240, "name": "OwnerAddition", "nodeType": "EventDefinition", "parameters": { "id": 2239, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2238, "indexed": true, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2240, "src": "735:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2237, "name": "address", "nodeType": "ElementaryTypeName", "src": "735:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "734:23:16" }, "src": "715:43:16" }, { "anonymous": false, "documentation": null, "id": 2244, "name": "OwnerRemoval", "nodeType": "EventDefinition", "parameters": { "id": 2243, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2242, "indexed": true, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2244, "src": "782:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2241, "name": "address", "nodeType": "ElementaryTypeName", "src": "782:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "781:23:16" }, "src": "763:42:16" }, { "anonymous": false, "documentation": null, "id": 2248, "name": "RequirementChange", "nodeType": "EventDefinition", "parameters": { "id": 2247, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2246, "indexed": false, "mutability": "mutable", "name": "required", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2248, "src": "834:16:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2245, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "834:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "833:18:16" }, "src": "810:42:16" }, { "anonymous": false, "documentation": null, "id": 2254, "name": "UnlockTimeSet", "nodeType": "EventDefinition", "parameters": { "id": 2253, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2250, "indexed": true, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2254, "src": "877:29:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2249, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "877:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2252, "indexed": false, "mutability": "mutable", "name": "confirmationTime", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2254, "src": "908:24:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2251, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "908:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "876:57:16" }, "src": "857:77:16" }, { "anonymous": false, "documentation": null, "id": 2258, "name": "LockSecondsChange", "nodeType": "EventDefinition", "parameters": { "id": 2257, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2256, "indexed": false, "mutability": "mutable", "name": "lockSeconds", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2258, "src": "963:19:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2255, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "963:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "962:21:16" }, "src": "939:45:16" }, { "constant": false, "functionSelector": "9ace38c2", "id": 2262, "mutability": "mutable", "name": "transactions", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3385, "src": "990:51:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction)" }, "typeName": { "id": 2261, "keyType": { "id": 2259, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "998:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", "src": "990:31:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction)" }, "valueType": { "contractScope": null, "id": 2260, "name": "Transaction", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2292, "src": "1009:11:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.Transaction" } } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "3411c81c", "id": 2268, "mutability": "mutable", "name": "confirmations", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3385, "src": "1047:65:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(uint256 => mapping(address => bool))" }, "typeName": { "id": 2267, "keyType": { "id": 2263, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1055:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", "src": "1047:44:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(uint256 => mapping(address => bool))" }, "valueType": { "id": 2266, "keyType": { "id": 2264, "name": "address", "nodeType": "ElementaryTypeName", "src": "1074:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1066:24:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { "id": 2265, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1085:4:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "2f54bf6e", "id": 2272, "mutability": "mutable", "name": "isOwner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3385, "src": "1118:39:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "typeName": { "id": 2271, "keyType": { "id": 2269, "name": "address", "nodeType": "ElementaryTypeName", "src": "1126:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1118:24:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { "id": 2270, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1137:4:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "76ac947a", "id": 2276, "mutability": "mutable", "name": "unlockTimes", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3385, "src": "1163:46:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" }, "typeName": { "id": 2275, "keyType": { "id": 2273, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1171:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", "src": "1163:27:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" }, "valueType": { "id": 2274, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1182:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "025e7c27", "id": 2279, "mutability": "mutable", "name": "owners", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3385, "src": "1216:23:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[]" }, "typeName": { "baseType": { "id": 2277, "name": "address", "nodeType": "ElementaryTypeName", "src": "1216:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2278, "length": null, "nodeType": "ArrayTypeName", "src": "1216:9:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "dc8452cd", "id": 2281, "mutability": "mutable", "name": "required", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3385, "src": "1245:23:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2280, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1245:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "b77bf600", "id": 2283, "mutability": "mutable", "name": "transactionCount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3385, "src": "1274:31:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2282, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1274:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "canonicalName": "MultiSigWalletWithTimelock.Transaction", "id": 2292, "members": [ { "constant": false, "id": 2285, "mutability": "mutable", "name": "destination", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2292, "src": "1341:19:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2284, "name": "address", "nodeType": "ElementaryTypeName", "src": "1341:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2287, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2292, "src": "1370:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2286, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1370:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2289, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2292, "src": "1393:10:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" }, "typeName": { "id": 2288, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1393:5:16", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2291, "mutability": "mutable", "name": "executed", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2292, "src": "1413:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2290, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1413:4:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "name": "Transaction", "nodeType": "StructDefinition", "scope": 3385, "src": "1312:121:16", "visibility": "public" }, { "canonicalName": "MultiSigWalletWithTimelock.EmergencyCall", "id": 2297, "members": [ { "constant": false, "id": 2294, "mutability": "mutable", "name": "selector", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2297, "src": "1470:16:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 2293, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1470:7:16", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2296, "mutability": "mutable", "name": "paramsBytesCount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2297, "src": "1496:24:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2295, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1496:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "name": "EmergencyCall", "nodeType": "StructDefinition", "scope": 3385, "src": "1439:88:16", "visibility": "public" }, { "constant": false, "functionSelector": "86384afc", "id": 2300, "mutability": "mutable", "name": "emergencyCalls", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3385, "src": "1579:37:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall[]" }, "typeName": { "baseType": { "contractScope": null, "id": 2298, "name": "EmergencyCall", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2297, "src": "1579:13:16", "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall" } }, "id": 2299, "length": null, "nodeType": "ArrayTypeName", "src": "1579:15:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall[]" } }, "value": null, "visibility": "public" }, { "body": { "id": 2315, "nodeType": "Block", "src": "1645:88:16", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "id": 2308, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2302, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "1659:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1659:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2306, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "1681:4:16", "typeDescriptions": { "typeIdentifier": "t_contract$_MultiSigWalletWithTimelock_$3385", "typeString": "contract MultiSigWalletWithTimelock" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_MultiSigWalletWithTimelock_$3385", "typeString": "contract MultiSigWalletWithTimelock" } ], "id": 2305, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1673:7:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 2304, "name": "address", "nodeType": "ElementaryTypeName", "src": "1673:7:16", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 2307, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1673:13:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "1659:27:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2313, "nodeType": "IfStatement", "src": "1655:60:16", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "4f4e4c595f57414c4c45545f4552524f52", "id": 2310, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1695:19:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_154c05d05b8b4fc5182b27cf8fc7d4edd12f98319c5a78b89a786d51471e8730", "typeString": "literal_string \"ONLY_WALLET_ERROR\"" }, "value": "ONLY_WALLET_ERROR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_154c05d05b8b4fc5182b27cf8fc7d4edd12f98319c5a78b89a786d51471e8730", "typeString": "literal_string \"ONLY_WALLET_ERROR\"" } ], "id": 2309, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "1688:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 2311, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1688:27:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2312, "nodeType": "ExpressionStatement", "src": "1688:27:16" } }, { "id": 2314, "nodeType": "PlaceholderStatement", "src": "1725:1:16" } ] }, "documentation": null, "id": 2316, "name": "onlyWallet", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 2301, "nodeType": "ParameterList", "parameters": [], "src": "1642:2:16" }, "src": "1623:110:16", "virtual": false, "visibility": "internal" }, { "body": { "id": 2329, "nodeType": "Block", "src": "1781:84:16", "statements": [ { "condition": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2320, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2272, "src": "1795:7:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2322, "indexExpression": { "argumentTypes": null, "id": 2321, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2318, "src": "1803:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1795:14:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2327, "nodeType": "IfStatement", "src": "1791:56:16", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "4f574e45525f444f45535f4e4f545f45584953545f4552524f52", "id": 2324, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1818:28:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_0de49efc4c535b8cd13aa9de166b4db6f53a1ded9c131ce141ae0ef26adc35fb", "typeString": "literal_string \"OWNER_DOES_NOT_EXIST_ERROR\"" }, "value": "OWNER_DOES_NOT_EXIST_ERROR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_0de49efc4c535b8cd13aa9de166b4db6f53a1ded9c131ce141ae0ef26adc35fb", "typeString": "literal_string \"OWNER_DOES_NOT_EXIST_ERROR\"" } ], "id": 2323, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "1811:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 2325, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1811:36:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2326, "nodeType": "ExpressionStatement", "src": "1811:36:16" } }, { "id": 2328, "nodeType": "PlaceholderStatement", "src": "1857:1:16" } ] }, "documentation": null, "id": 2330, "name": "ownerDoesNotExist", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 2319, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2318, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2330, "src": "1766:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2317, "name": "address", "nodeType": "ElementaryTypeName", "src": "1766:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1765:15:16" }, "src": "1739:126:16", "virtual": false, "visibility": "internal" }, { "body": { "id": 2344, "nodeType": "Block", "src": "1907:77:16", "statements": [ { "condition": { "argumentTypes": null, "id": 2337, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "1921:15:16", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2334, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2272, "src": "1922:7:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2336, "indexExpression": { "argumentTypes": null, "id": 2335, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2332, "src": "1930:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1922:14:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2342, "nodeType": "IfStatement", "src": "1917:49:16", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "4f574e45525f4558495354535f4552524f52", "id": 2339, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1945:20:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a5679e051834b8488b2a064e5d691d44ba5a73e92259d98f57c96ad80baf3fdf", "typeString": "literal_string \"OWNER_EXISTS_ERROR\"" }, "value": "OWNER_EXISTS_ERROR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_a5679e051834b8488b2a064e5d691d44ba5a73e92259d98f57c96ad80baf3fdf", "typeString": "literal_string \"OWNER_EXISTS_ERROR\"" } ], "id": 2338, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "1938:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 2340, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1938:28:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2341, "nodeType": "ExpressionStatement", "src": "1938:28:16" } }, { "id": 2343, "nodeType": "PlaceholderStatement", "src": "1976:1:16" } ] }, "documentation": null, "id": 2345, "name": "ownerExists", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 2333, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2332, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2345, "src": "1892:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2331, "name": "address", "nodeType": "ElementaryTypeName", "src": "1892:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1891:15:16" }, "src": "1871:113:16", "virtual": false, "visibility": "internal" }, { "body": { "id": 2364, "nodeType": "Block", "src": "2040:133:16", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 2357, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2349, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2262, "src": "2054:12:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" } }, "id": 2351, "indexExpression": { "argumentTypes": null, "id": 2350, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2347, "src": "2067:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2054:27:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" } }, "id": 2352, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "destination", "nodeType": "MemberAccess", "referencedDeclaration": 2285, "src": "2054:39:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 2355, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2105:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 2354, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2097:7:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 2353, "name": "address", "nodeType": "ElementaryTypeName", "src": "2097:7:16", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 2356, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2097:10:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "2054:53:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2362, "nodeType": "IfStatement", "src": "2050:105:16", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "5452414e53414354494f4e5f4558495354535f4552524f52", "id": 2359, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2128:26:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_0fa90d37b3d14dd2ae235c1fa2187af5b08c507d31134f0aa67ff6323c434990", "typeString": "literal_string \"TRANSACTION_EXISTS_ERROR\"" }, "value": "TRANSACTION_EXISTS_ERROR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_0fa90d37b3d14dd2ae235c1fa2187af5b08c507d31134f0aa67ff6323c434990", "typeString": "literal_string \"TRANSACTION_EXISTS_ERROR\"" } ], "id": 2358, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "2121:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 2360, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2121:34:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2361, "nodeType": "ExpressionStatement", "src": "2121:34:16" } }, { "id": 2363, "nodeType": "PlaceholderStatement", "src": "2165:1:16" } ] }, "documentation": null, "id": 2365, "name": "transactionExists", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 2348, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2347, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2365, "src": "2017:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2346, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2017:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2016:23:16" }, "src": "1990:183:16", "virtual": false, "visibility": "internal" }, { "body": { "id": 2383, "nodeType": "Block", "src": "2236:95:16", "statements": [ { "condition": { "argumentTypes": null, "id": 2376, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "2250:36:16", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2371, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2268, "src": "2251:13:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(uint256 => mapping(address => bool))" } }, "id": 2373, "indexExpression": { "argumentTypes": null, "id": 2372, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2367, "src": "2265:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2251:28:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2375, "indexExpression": { "argumentTypes": null, "id": 2374, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2369, "src": "2280:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2251:35:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2381, "nodeType": "IfStatement", "src": "2246:67:16", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "434f4e4649524d45445f4552524f52", "id": 2378, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2295:17:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_07011048ab4b644cae74fcaa058ba0ec4eb97750e69f4cfa039855b5807ab8eb", "typeString": "literal_string \"CONFIRMED_ERROR\"" }, "value": "CONFIRMED_ERROR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_07011048ab4b644cae74fcaa058ba0ec4eb97750e69f4cfa039855b5807ab8eb", "typeString": "literal_string \"CONFIRMED_ERROR\"" } ], "id": 2377, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "2288:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 2379, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2288:25:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2380, "nodeType": "ExpressionStatement", "src": "2288:25:16" } }, { "id": 2382, "nodeType": "PlaceholderStatement", "src": "2323:1:16" } ] }, "documentation": null, "id": 2384, "name": "confirmed", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 2370, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2367, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2384, "src": "2198:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2366, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2198:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2369, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2384, "src": "2221:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2368, "name": "address", "nodeType": "ElementaryTypeName", "src": "2221:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2197:38:16" }, "src": "2179:152:16", "virtual": false, "visibility": "internal" }, { "body": { "id": 2401, "nodeType": "Block", "src": "2397:98:16", "statements": [ { "condition": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2390, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2268, "src": "2411:13:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(uint256 => mapping(address => bool))" } }, "id": 2392, "indexExpression": { "argumentTypes": null, "id": 2391, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2386, "src": "2425:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2411:28:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2394, "indexExpression": { "argumentTypes": null, "id": 2393, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2388, "src": "2440:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2411:35:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2399, "nodeType": "IfStatement", "src": "2407:70:16", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "4e4f545f434f4e4649524d45445f4552524f52", "id": 2396, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2455:21:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b93c270f73799c5026e6575ecff3675a730a2cac46b17cbb393881d7e18763e2", "typeString": "literal_string \"NOT_CONFIRMED_ERROR\"" }, "value": "NOT_CONFIRMED_ERROR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_b93c270f73799c5026e6575ecff3675a730a2cac46b17cbb393881d7e18763e2", "typeString": "literal_string \"NOT_CONFIRMED_ERROR\"" } ], "id": 2395, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "2448:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 2397, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2448:29:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2398, "nodeType": "ExpressionStatement", "src": "2448:29:16" } }, { "id": 2400, "nodeType": "PlaceholderStatement", "src": "2487:1:16" } ] }, "documentation": null, "id": 2402, "name": "notConfirmed", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 2389, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2386, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2402, "src": "2359:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2385, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2359:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2388, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2402, "src": "2382:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2387, "name": "address", "nodeType": "ElementaryTypeName", "src": "2382:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2358:38:16" }, "src": "2337:158:16", "virtual": false, "visibility": "internal" }, { "body": { "id": 2416, "nodeType": "Block", "src": "2545:98:16", "statements": [ { "condition": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2406, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2262, "src": "2559:12:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" } }, "id": 2408, "indexExpression": { "argumentTypes": null, "id": 2407, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2404, "src": "2572:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2559:27:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" } }, "id": 2409, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "executed", "nodeType": "MemberAccess", "referencedDeclaration": 2291, "src": "2559:36:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2414, "nodeType": "IfStatement", "src": "2555:70:16", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "4e4f545f45584543555445445f4552524f52", "id": 2411, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2604:20:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_543cb05dbc23c4af907ca5a03a85c3d24cca2a1ba4a868fc8943b3b8ea69747d", "typeString": "literal_string \"NOT_EXECUTED_ERROR\"" }, "value": "NOT_EXECUTED_ERROR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_543cb05dbc23c4af907ca5a03a85c3d24cca2a1ba4a868fc8943b3b8ea69747d", "typeString": "literal_string \"NOT_EXECUTED_ERROR\"" } ], "id": 2410, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "2597:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 2412, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2597:28:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2413, "nodeType": "ExpressionStatement", "src": "2597:28:16" } }, { "id": 2415, "nodeType": "PlaceholderStatement", "src": "2635:1:16" } ] }, "documentation": null, "id": 2417, "name": "notExecuted", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 2405, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2404, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2417, "src": "2522:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2403, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2522:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2521:23:16" }, "src": "2501:142:16", "virtual": false, "visibility": "internal" }, { "body": { "id": 2433, "nodeType": "Block", "src": "2684:80:16", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 2426, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2421, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2419, "src": "2698:8:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 2424, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2718:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 2423, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2710:7:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 2422, "name": "address", "nodeType": "ElementaryTypeName", "src": "2710:7:16", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 2425, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2710:10:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "2698:22:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2431, "nodeType": "IfStatement", "src": "2694:52:16", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "4e4f545f4e554c4c5f4552524f52", "id": 2428, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2729:16:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ce3a403561f7436d6efa7d01af7869570afca7da394caf15c8ed863039e7b421", "typeString": "literal_string \"NOT_NULL_ERROR\"" }, "value": "NOT_NULL_ERROR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_ce3a403561f7436d6efa7d01af7869570afca7da394caf15c8ed863039e7b421", "typeString": "literal_string \"NOT_NULL_ERROR\"" } ], "id": 2427, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "2722:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 2429, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2722:24:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2430, "nodeType": "ExpressionStatement", "src": "2722:24:16" } }, { "id": 2432, "nodeType": "PlaceholderStatement", "src": "2756:1:16" } ] }, "documentation": null, "id": 2434, "name": "notNull", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 2420, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2419, "mutability": "mutable", "name": "_address", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2434, "src": "2666:16:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2418, "name": "address", "nodeType": "ElementaryTypeName", "src": "2666:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2665:18:16" }, "src": "2649:115:16", "virtual": false, "visibility": "internal" }, { "body": { "id": 2461, "nodeType": "Block", "src": "2835:216:16", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2454, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2450, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2446, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2442, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2440, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2436, "src": "2862:10:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "id": 2441, "name": "MAX_OWNER_COUNT", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2203, "src": "2875:15:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2862:28:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2445, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2443, "name": "_required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2438, "src": "2906:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "id": 2444, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2436, "src": "2918:10:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2906:22:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "2862:66:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2449, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2447, "name": "_required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2438, "src": "2944:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 2448, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2957:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "2944:14:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "2862:96:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2453, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2451, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2436, "src": "2974:10:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 2452, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2988:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "2974:15:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "2862:127:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2459, "nodeType": "IfStatement", "src": "2845:188:16", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "56414c49445f524551554952454d454e545f4552524f52", "id": 2456, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3007:25:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f7c52332ec5db78e995be376b3733f9df721050c4817a36758c44295f63a1644", "typeString": "literal_string \"VALID_REQUIREMENT_ERROR\"" }, "value": "VALID_REQUIREMENT_ERROR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_f7c52332ec5db78e995be376b3733f9df721050c4817a36758c44295f63a1644", "typeString": "literal_string \"VALID_REQUIREMENT_ERROR\"" } ], "id": 2455, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "3000:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 2457, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3000:33:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2458, "nodeType": "ExpressionStatement", "src": "3000:33:16" } }, { "id": 2460, "nodeType": "PlaceholderStatement", "src": "3043:1:16" } ] }, "documentation": null, "id": 2462, "name": "validRequirement", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 2439, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2436, "mutability": "mutable", "name": "ownerCount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2462, "src": "2796:18:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2435, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2796:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2438, "mutability": "mutable", "name": "_required", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2462, "src": "2816:17:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2437, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2816:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2795:39:16" }, "src": "2770:281:16", "virtual": false, "visibility": "internal" }, { "body": { "id": 2479, "nodeType": "Block", "src": "3144:95:16", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2469, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2466, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3158:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2467, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3158:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 2468, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3170:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3158:13:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2478, "nodeType": "IfStatement", "src": "3154:79:16", "trueBody": { "id": 2477, "nodeType": "Block", "src": "3173:60:16", "statements": [ { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2471, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3200:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2472, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3200:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2473, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3212:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2474, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3212:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2470, "name": "Deposit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2236, "src": "3192:7:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 2475, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3192:30:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2476, "nodeType": "EmitStatement", "src": "3187:35:16" } ] } } ] }, "documentation": { "id": 2463, "nodeType": "StructuredDocumentation", "src": "3057:54:16", "text": "@dev Fallback function allows to deposit ether. " }, "id": 2480, "implemented": true, "kind": "fallback", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2464, "nodeType": "ParameterList", "parameters": [], "src": "3124:2:16" }, "returnParameters": { "id": 2465, "nodeType": "ParameterList", "parameters": [], "src": "3144:0:16" }, "scope": 3385, "src": "3116:123:16", "stateMutability": "payable", "virtual": false, "visibility": "external" }, { "body": { "id": 2496, "nodeType": "Block", "src": "3272:95:16", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2486, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2483, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3286:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2484, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3286:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 2485, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3298:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3286:13:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2495, "nodeType": "IfStatement", "src": "3282:79:16", "trueBody": { "id": 2494, "nodeType": "Block", "src": "3301:60:16", "statements": [ { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2488, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3328:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2489, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3328:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2490, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3340:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2491, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3340:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2487, "name": "Deposit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2236, "src": "3320:7:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 2492, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3320:30:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2493, "nodeType": "EmitStatement", "src": "3315:35:16" } ] } } ] }, "documentation": null, "id": 2497, "implemented": true, "kind": "receive", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2481, "nodeType": "ParameterList", "parameters": [], "src": "3252:2:16" }, "returnParameters": { "id": 2482, "nodeType": "ParameterList", "parameters": [], "src": "3272:0:16" }, "scope": 3385, "src": "3245:122:16", "stateMutability": "payable", "virtual": false, "visibility": "external" }, { "body": { "id": 2602, "nodeType": "Block", "src": "3705:930:16", "statements": [ { "body": { "id": 2550, "nodeType": "Block", "src": "3760:172:16", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2535, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2522, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2272, "src": "3778:7:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2526, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2523, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2501, "src": "3786:7:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 2525, "indexExpression": { "argumentTypes": null, "id": 2524, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2512, "src": "3794:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3786:10:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3778:19:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 2534, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2527, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2501, "src": "3801:7:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 2529, "indexExpression": { "argumentTypes": null, "id": 2528, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2512, "src": "3809:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3801:10:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 2532, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3823:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 2531, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3815:7:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 2530, "name": "address", "nodeType": "ElementaryTypeName", "src": "3815:7:16", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 2533, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3815:10:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "3801:24:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "3778:47:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2541, "nodeType": "IfStatement", "src": "3774:107:16", "trueBody": { "id": 2540, "nodeType": "Block", "src": "3827:54:16", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "4f574e45525f4552524f52", "id": 2537, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3852:13:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_50f5ffffd46b93fc4216a2fd08d8a742f987ab7f4a48d802983a9d879430368b", "typeString": "literal_string \"OWNER_ERROR\"" }, "value": "OWNER_ERROR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_50f5ffffd46b93fc4216a2fd08d8a742f987ab7f4a48d802983a9d879430368b", "typeString": "literal_string \"OWNER_ERROR\"" } ], "id": 2536, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "3845:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 2538, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3845:21:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2539, "nodeType": "ExpressionStatement", "src": "3845:21:16" } ] } }, { "expression": { "argumentTypes": null, "id": 2548, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2542, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2272, "src": "3895:7:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2546, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2543, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2501, "src": "3903:7:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 2545, "indexExpression": { "argumentTypes": null, "id": 2544, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2512, "src": "3911:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3903:10:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3895:19:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 2547, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "3917:4:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "3895:26:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2549, "nodeType": "ExpressionStatement", "src": "3895:26:16" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2518, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2515, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2512, "src": "3735:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2516, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2501, "src": "3739:7:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 2517, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3739:14:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3735:18:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2551, "initializationExpression": { "assignments": [ 2512 ], "declarations": [ { "constant": false, "id": 2512, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2551, "src": "3720:9:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2511, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3720:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 2514, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 2513, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3732:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "3720:13:16" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 2520, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "3755:3:16", "subExpression": { "argumentTypes": null, "id": 2519, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2512, "src": "3755:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2521, "nodeType": "ExpressionStatement", "src": "3755:3:16" }, "nodeType": "ForStatement", "src": "3715:217:16" }, { "expression": { "argumentTypes": null, "id": 2554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 2552, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "3942:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 2553, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2501, "src": "3951:7:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "src": "3942:16:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2555, "nodeType": "ExpressionStatement", "src": "3942:16:16" }, { "expression": { "argumentTypes": null, "id": 2558, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 2556, "name": "required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2281, "src": "3968:8:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 2557, "name": "_required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2503, "src": "3979:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3968:20:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2559, "nodeType": "ExpressionStatement", "src": "3968:20:16" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "636c61696d4f776e6572736869702829", "id": 2567, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4139:18:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_4e71e0c8676e3746167a1acf5f45b9c4f9bfd01db4faa49dd539202eb4a76b23", "typeString": "literal_string \"claimOwnership()\"" }, "value": "claimOwnership()" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_4e71e0c8676e3746167a1acf5f45b9c4f9bfd01db4faa49dd539202eb4a76b23", "typeString": "literal_string \"claimOwnership()\"" } ], "expression": { "argumentTypes": null, "id": 2565, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4122:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2566, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4122:16:16", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2568, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4122:36:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2564, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "4112:9:16", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2569, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4112:47:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "hexValue": "30", "id": 2570, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4195:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 2563, "name": "EmergencyCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2297, "src": "4070:13:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_EmergencyCall_$2297_storage_ptr_$", "typeString": "type(struct MultiSigWalletWithTimelock.EmergencyCall storage pointer)" } }, "id": 2571, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "names": [ "selector", "paramsBytesCount" ], "nodeType": "FunctionCall", "src": "4070:141:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } ], "expression": { "argumentTypes": null, "id": 2560, "name": "emergencyCalls", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2300, "src": "4037:14:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" } }, "id": 2562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4037:19:16", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_EmergencyCall_$2297_storage_$returns$__$", "typeString": "function (struct MultiSigWalletWithTimelock.EmergencyCall storage ref)" } }, "id": 2572, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4037:184:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2573, "nodeType": "ExpressionStatement", "src": "4037:184:16" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "7365744b2875696e7432353629", "id": 2581, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4333:15:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_67de8be994f5e612024f208d2fe429438ed98f752dca627d14a952634dbd4ba7", "typeString": "literal_string \"setK(uint256)\"" }, "value": "setK(uint256)" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_67de8be994f5e612024f208d2fe429438ed98f752dca627d14a952634dbd4ba7", "typeString": "literal_string \"setK(uint256)\"" } ], "expression": { "argumentTypes": null, "id": 2579, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4316:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2580, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4316:16:16", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2582, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4316:33:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2578, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "4306:9:16", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2583, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4306:44:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "hexValue": "3634", "id": 2584, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4386:2:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" } ], "id": 2577, "name": "EmergencyCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2297, "src": "4264:13:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_EmergencyCall_$2297_storage_ptr_$", "typeString": "type(struct MultiSigWalletWithTimelock.EmergencyCall storage pointer)" } }, "id": 2585, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "names": [ "selector", "paramsBytesCount" ], "nodeType": "FunctionCall", "src": "4264:139:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } ], "expression": { "argumentTypes": null, "id": 2574, "name": "emergencyCalls", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2300, "src": "4231:14:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" } }, "id": 2576, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4231:19:16", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_EmergencyCall_$2297_storage_$returns$__$", "typeString": "function (struct MultiSigWalletWithTimelock.EmergencyCall storage ref)" } }, "id": 2586, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4231:182:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2587, "nodeType": "ExpressionStatement", "src": "4231:182:16" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "7365744c697175696469747950726f7669646572466565526174652875696e7432353629", "id": 2595, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4525:38:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5bb7552a97062da753264cd0b6de4cb510c3e7bc8360141372bd76876d44f10e", "typeString": "literal_string \"setLiquidityProviderFeeRate(uint256)\"" }, "value": "setLiquidityProviderFeeRate(uint256)" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_5bb7552a97062da753264cd0b6de4cb510c3e7bc8360141372bd76876d44f10e", "typeString": "literal_string \"setLiquidityProviderFeeRate(uint256)\"" } ], "expression": { "argumentTypes": null, "id": 2593, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4508:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2594, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4508:16:16", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2596, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4508:56:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2592, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "4498:9:16", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 2597, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4498:67:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "hexValue": "3634", "id": 2598, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4601:2:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" } ], "id": 2591, "name": "EmergencyCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2297, "src": "4456:13:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_EmergencyCall_$2297_storage_ptr_$", "typeString": "type(struct MultiSigWalletWithTimelock.EmergencyCall storage pointer)" } }, "id": 2599, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "names": [ "selector", "paramsBytesCount" ], "nodeType": "FunctionCall", "src": "4456:162:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } ], "expression": { "argumentTypes": null, "id": 2588, "name": "emergencyCalls", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2300, "src": "4423:14:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" } }, "id": 2590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4423:19:16", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_EmergencyCall_$2297_storage_$returns$__$", "typeString": "function (struct MultiSigWalletWithTimelock.EmergencyCall storage ref)" } }, "id": 2600, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4423:205:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2601, "nodeType": "ExpressionStatement", "src": "4423:205:16" } ] }, "documentation": { "id": 2498, "nodeType": "StructuredDocumentation", "src": "3373:199:16", "text": "@dev Contract constructor sets initial owners and required number of confirmations.\n @param _owners List of initial owners.\n @param _required Number of required confirmations." }, "id": 2603, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2506, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2501, "src": "3674:7:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 2507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3674:14:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 2508, "name": "_required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2503, "src": "3690:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 2509, "modifierName": { "argumentTypes": null, "id": 2505, "name": "validRequirement", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2462, "src": "3657:16:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", "typeString": "modifier (uint256,uint256)" } }, "nodeType": "ModifierInvocation", "src": "3657:43:16" } ], "name": "", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2504, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2501, "mutability": "mutable", "name": "_owners", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2603, "src": "3589:24:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 2499, "name": "address", "nodeType": "ElementaryTypeName", "src": "3589:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2500, "length": null, "nodeType": "ArrayTypeName", "src": "3589:9:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2503, "mutability": "mutable", "name": "_required", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2603, "src": "3615:17:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2502, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3615:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "3588:45:16" }, "returnParameters": { "id": 2510, "nodeType": "ParameterList", "parameters": [], "src": "3705:0:16" }, "scope": 3385, "src": "3577:1058:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 2611, "nodeType": "Block", "src": "4713:45:16", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2608, "name": "emergencyCalls", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2300, "src": "4730:14:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" } }, "id": 2609, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4730:21:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 2607, "id": 2610, "nodeType": "Return", "src": "4723:28:16" } ] }, "documentation": null, "functionSelector": "c0af0227", "id": 2612, "implemented": true, "kind": "function", "modifiers": [], "name": "getEmergencyCallsCount", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2604, "nodeType": "ParameterList", "parameters": [], "src": "4672:2:16" }, "returnParameters": { "id": 2607, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2606, "mutability": "mutable", "name": "count", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2612, "src": "4698:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2605, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4698:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4697:15:16" }, "scope": 3385, "src": "4641:117:16", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 2649, "nodeType": "Block", "src": "5075:101:16", "statements": [ { "expression": { "argumentTypes": null, "id": 2637, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2633, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2272, "src": "5085:7:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2635, "indexExpression": { "argumentTypes": null, "id": 2634, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2615, "src": "5093:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5085:14:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 2636, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "5102:4:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "5085:21:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2638, "nodeType": "ExpressionStatement", "src": "5085:21:16" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2642, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2615, "src": "5128:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "id": 2639, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "5116:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2641, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5116:11:16", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 2643, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5116:18:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2644, "nodeType": "ExpressionStatement", "src": "5116:18:16" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2646, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2615, "src": "5163:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 2645, "name": "OwnerAddition", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2240, "src": "5149:13:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 2647, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5149:20:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2648, "nodeType": "EmitStatement", "src": "5144:25:16" } ] }, "documentation": { "id": 2613, "nodeType": "StructuredDocumentation", "src": "4764:123:16", "text": "@dev Allows to add a new owner. Transaction has to be sent by wallet.\n @param owner Address of new owner." }, "functionSelector": "7065cb48", "id": 2650, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 2618, "modifierName": { "argumentTypes": null, "id": 2617, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2316, "src": "4950:10:16", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "4950:10:16" }, { "arguments": [ { "argumentTypes": null, "id": 2620, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2615, "src": "4987:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "id": 2621, "modifierName": { "argumentTypes": null, "id": 2619, "name": "ownerDoesNotExist", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2330, "src": "4969:17:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "4969:24:16" }, { "arguments": [ { "argumentTypes": null, "id": 2623, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2615, "src": "5010:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "id": 2624, "modifierName": { "argumentTypes": null, "id": 2622, "name": "notNull", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2434, "src": "5002:7:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "5002:14:16" }, { "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2629, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2626, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "5042:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2627, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5042:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 2628, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5058:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "5042:17:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 2630, "name": "required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2281, "src": "5061:8:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 2631, "modifierName": { "argumentTypes": null, "id": 2625, "name": "validRequirement", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2462, "src": "5025:16:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", "typeString": "modifier (uint256,uint256)" } }, "nodeType": "ModifierInvocation", "src": "5025:45:16" } ], "name": "addOwner", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2616, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2615, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2650, "src": "4910:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2614, "name": "address", "nodeType": "ElementaryTypeName", "src": "4910:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "4909:15:16" }, "returnParameters": { "id": 2632, "nodeType": "ParameterList", "parameters": [], "src": "5075:0:16" }, "scope": 3385, "src": "4892:284:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 2720, "nodeType": "Block", "src": "5381:390:16", "statements": [ { "expression": { "argumentTypes": null, "id": 2665, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2661, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2272, "src": "5391:7:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2663, "indexExpression": { "argumentTypes": null, "id": 2662, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2653, "src": "5399:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5391:14:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", "id": 2664, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "5408:5:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "5391:22:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2666, "nodeType": "ExpressionStatement", "src": "5391:22:16" }, { "body": { "id": 2699, "nodeType": "Block", "src": "5471:141:16", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 2684, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2680, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "5489:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2682, "indexExpression": { "argumentTypes": null, "id": 2681, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2668, "src": "5496:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5489:9:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 2683, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2653, "src": "5502:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "5489:18:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2698, "nodeType": "IfStatement", "src": "5485:117:16", "trueBody": { "id": 2697, "nodeType": "Block", "src": "5509:93:16", "statements": [ { "expression": { "argumentTypes": null, "id": 2694, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2685, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "5527:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2687, "indexExpression": { "argumentTypes": null, "id": 2686, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2668, "src": "5534:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5527:9:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2688, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "5539:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2693, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2692, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2689, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "5546:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5546:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 2691, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5562:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "5546:17:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5539:25:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "5527:37:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2695, "nodeType": "ExpressionStatement", "src": "5527:37:16" }, { "id": 2696, "nodeType": "Break", "src": "5582:5:16" } ] } } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2676, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2671, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2668, "src": "5443:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2675, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2672, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "5447:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2673, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5447:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 2674, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5463:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "5447:17:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5443:21:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2700, "initializationExpression": { "assignments": [ 2668 ], "declarations": [ { "constant": false, "id": 2668, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2700, "src": "5428:9:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2667, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5428:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 2670, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 2669, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5440:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "5428:13:16" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 2678, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "5466:3:16", "subExpression": { "argumentTypes": null, "id": 2677, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2668, "src": "5466:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2679, "nodeType": "ExpressionStatement", "src": "5466:3:16" }, "nodeType": "ForStatement", "src": "5423:189:16" }, { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2701, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "5622:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2703, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "pop", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5622:10:16", "typeDescriptions": { "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 2704, "nodeType": "ExpressionStatement", "src": "5622:10:16" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2708, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2705, "name": "required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2281, "src": "5647:8:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2706, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "5658:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2707, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5658:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5647:24:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2715, "nodeType": "IfStatement", "src": "5643:87:16", "trueBody": { "id": 2714, "nodeType": "Block", "src": "5673:57:16", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2710, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "5705:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2711, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5705:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2709, "name": "changeRequirement", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2807, "src": "5687:17:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 2712, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5687:32:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2713, "nodeType": "ExpressionStatement", "src": "5687:32:16" } ] } }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2717, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2653, "src": "5758:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 2716, "name": "OwnerRemoval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2244, "src": "5745:12:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 2718, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5745:19:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2719, "nodeType": "EmitStatement", "src": "5740:24:16" } ] }, "documentation": { "id": 2651, "nodeType": "StructuredDocumentation", "src": "5182:119:16", "text": "@dev Allows to remove an owner. Transaction has to be sent by wallet.\n @param owner Address of owner." }, "functionSelector": "173825d9", "id": 2721, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 2656, "modifierName": { "argumentTypes": null, "id": 2655, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2316, "src": "5351:10:16", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "5351:10:16" }, { "arguments": [ { "argumentTypes": null, "id": 2658, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2653, "src": "5374:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "id": 2659, "modifierName": { "argumentTypes": null, "id": 2657, "name": "ownerExists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2345, "src": "5362:11:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "5362:18:16" } ], "name": "removeOwner", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2654, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2653, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2721, "src": "5327:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2652, "name": "address", "nodeType": "ElementaryTypeName", "src": "5327:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "5326:15:16" }, "returnParameters": { "id": 2660, "nodeType": "ParameterList", "parameters": [], "src": "5381:0:16" }, "scope": 3385, "src": "5306:465:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 2784, "nodeType": "Block", "src": "6134:323:16", "statements": [ { "body": { "id": 2762, "nodeType": "Block", "src": "6188:124:16", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 2752, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2748, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "6206:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2750, "indexExpression": { "argumentTypes": null, "id": 2749, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2738, "src": "6213:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6206:9:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 2751, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2724, "src": "6219:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "6206:18:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2761, "nodeType": "IfStatement", "src": "6202:100:16", "trueBody": { "id": 2760, "nodeType": "Block", "src": "6226:76:16", "statements": [ { "expression": { "argumentTypes": null, "id": 2757, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2753, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "6244:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2755, "indexExpression": { "argumentTypes": null, "id": 2754, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2738, "src": "6251:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6244:9:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 2756, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2726, "src": "6256:8:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "6244:20:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2758, "nodeType": "ExpressionStatement", "src": "6244:20:16" }, { "id": 2759, "nodeType": "Break", "src": "6282:5:16" } ] } } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2744, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2741, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2738, "src": "6164:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2742, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "6168:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6168:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6164:17:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2763, "initializationExpression": { "assignments": [ 2738 ], "declarations": [ { "constant": false, "id": 2738, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2763, "src": "6149:9:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2737, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6149:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 2740, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 2739, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6161:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "6149:13:16" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 2746, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "6183:3:16", "subExpression": { "argumentTypes": null, "id": 2745, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2738, "src": "6183:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2747, "nodeType": "ExpressionStatement", "src": "6183:3:16" }, "nodeType": "ForStatement", "src": "6144:168:16" }, { "expression": { "argumentTypes": null, "id": 2768, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2764, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2272, "src": "6322:7:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2766, "indexExpression": { "argumentTypes": null, "id": 2765, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2724, "src": "6330:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6322:14:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", "id": 2767, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "6339:5:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "6322:22:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2769, "nodeType": "ExpressionStatement", "src": "6322:22:16" }, { "expression": { "argumentTypes": null, "id": 2774, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2770, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2272, "src": "6354:7:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2772, "indexExpression": { "argumentTypes": null, "id": 2771, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2726, "src": "6362:8:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6354:17:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 2773, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "6374:4:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "6354:24:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2775, "nodeType": "ExpressionStatement", "src": "6354:24:16" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2777, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2724, "src": "6406:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 2776, "name": "OwnerRemoval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2244, "src": "6393:12:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 2778, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6393:19:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2779, "nodeType": "EmitStatement", "src": "6388:24:16" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2781, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2726, "src": "6441:8:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 2780, "name": "OwnerAddition", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2240, "src": "6427:13:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 2782, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6427:23:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2783, "nodeType": "EmitStatement", "src": "6422:28:16" } ] }, "documentation": { "id": 2722, "nodeType": "StructuredDocumentation", "src": "5777:194:16", "text": "@dev Allows to replace an owner with a new owner. Transaction has to be sent by wallet.\n @param owner Address of owner to be replaced.\n @param owner Address of new owner." }, "functionSelector": "e20056e6", "id": 2785, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 2729, "modifierName": { "argumentTypes": null, "id": 2728, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2316, "src": "6056:10:16", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "6056:10:16" }, { "arguments": [ { "argumentTypes": null, "id": 2731, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2724, "src": "6087:5:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "id": 2732, "modifierName": { "argumentTypes": null, "id": 2730, "name": "ownerExists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2345, "src": "6075:11:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "6075:18:16" }, { "arguments": [ { "argumentTypes": null, "id": 2734, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2726, "src": "6120:8:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "id": 2735, "modifierName": { "argumentTypes": null, "id": 2733, "name": "ownerDoesNotExist", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2330, "src": "6102:17:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "6102:27:16" } ], "name": "replaceOwner", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2727, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2724, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2785, "src": "5998:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2723, "name": "address", "nodeType": "ElementaryTypeName", "src": "5998:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2726, "mutability": "mutable", "name": "newOwner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2785, "src": "6013:16:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2725, "name": "address", "nodeType": "ElementaryTypeName", "src": "6013:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "5997:33:16" }, "returnParameters": { "id": 2736, "nodeType": "ParameterList", "parameters": [], "src": "6134:0:16" }, "scope": 3385, "src": "5976:481:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 2806, "nodeType": "Block", "src": "6770:80:16", "statements": [ { "expression": { "argumentTypes": null, "id": 2800, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 2798, "name": "required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2281, "src": "6780:8:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 2799, "name": "_required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2788, "src": "6791:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6780:20:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2801, "nodeType": "ExpressionStatement", "src": "6780:20:16" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2803, "name": "_required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2788, "src": "6833:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2802, "name": "RequirementChange", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2248, "src": "6815:17:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 2804, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6815:28:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2805, "nodeType": "EmitStatement", "src": "6810:33:16" } ] }, "documentation": { "id": 2786, "nodeType": "StructuredDocumentation", "src": "6463:167:16", "text": "@dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.\n @param _required Number of required confirmations." }, "functionSelector": "ba51a6df", "id": 2807, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 2791, "modifierName": { "argumentTypes": null, "id": 2790, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2316, "src": "6704:10:16", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "6704:10:16" }, { "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2793, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "6740:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2794, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6740:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 2795, "name": "_required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2788, "src": "6755:9:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 2796, "modifierName": { "argumentTypes": null, "id": 2792, "name": "validRequirement", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2462, "src": "6723:16:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", "typeString": "modifier (uint256,uint256)" } }, "nodeType": "ModifierInvocation", "src": "6723:42:16" } ], "name": "changeRequirement", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2789, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2788, "mutability": "mutable", "name": "_required", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2807, "src": "6662:17:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2787, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6662:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "6661:19:16" }, "returnParameters": { "id": 2797, "nodeType": "ParameterList", "parameters": [], "src": "6770:0:16" }, "scope": 3385, "src": "6635:215:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 2823, "nodeType": "Block", "src": "7124:89:16", "statements": [ { "expression": { "argumentTypes": null, "id": 2817, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 2815, "name": "lockSeconds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2206, "src": "7134:11:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 2816, "name": "_lockSeconds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2810, "src": "7148:12:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7134:26:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2818, "nodeType": "ExpressionStatement", "src": "7134:26:16" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2820, "name": "_lockSeconds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2810, "src": "7193:12:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2819, "name": "LockSecondsChange", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2258, "src": "7175:17:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 2821, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7175:31:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2822, "nodeType": "EmitStatement", "src": "7170:36:16" } ] }, "documentation": { "id": 2808, "nodeType": "StructuredDocumentation", "src": "6856:194:16", "text": "@dev Changes the duration of the time lock for transactions.\n @param _lockSeconds Duration needed after a transaction is confirmed and before it becomes executable, in seconds." }, "functionSelector": "8c22d5d3", "id": 2824, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 2813, "modifierName": { "argumentTypes": null, "id": 2812, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2316, "src": "7113:10:16", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "7113:10:16" } ], "name": "changeLockSeconds", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2811, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2810, "mutability": "mutable", "name": "_lockSeconds", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2824, "src": "7082:20:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2809, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7082:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7081:22:16" }, "returnParameters": { "id": 2814, "nodeType": "ParameterList", "parameters": [], "src": "7124:0:16" }, "scope": 3385, "src": "7055:158:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 2870, "nodeType": "Block", "src": "7690:343:16", "statements": [ { "expression": { "argumentTypes": null, "id": 2845, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 2843, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2841, "src": "7700:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 2844, "name": "transactionCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2283, "src": "7716:16:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7700:32:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2846, "nodeType": "ExpressionStatement", "src": "7700:32:16" }, { "expression": { "argumentTypes": null, "id": 2856, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2847, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2262, "src": "7742:12:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" } }, "id": 2849, "indexExpression": { "argumentTypes": null, "id": 2848, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2841, "src": "7755:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "7742:27:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2851, "name": "destination", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2827, "src": "7811:11:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 2852, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2829, "src": "7843:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 2853, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2831, "src": "7868:4:16", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, { "argumentTypes": null, "hexValue": "66616c7365", "id": 2854, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "7896:5:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 2850, "name": "Transaction", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2292, "src": "7772:11:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Transaction_$2292_storage_ptr_$", "typeString": "type(struct MultiSigWalletWithTimelock.Transaction storage pointer)" } }, "id": 2855, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [ "destination", "value", "data", "executed" ], "nodeType": "FunctionCall", "src": "7772:140:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.Transaction memory" } }, "src": "7742:170:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" } }, "id": 2857, "nodeType": "ExpressionStatement", "src": "7742:170:16" }, { "expression": { "argumentTypes": null, "id": 2860, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 2858, "name": "transactionCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2283, "src": "7922:16:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "hexValue": "31", "id": 2859, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7942:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "7922:21:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2861, "nodeType": "ExpressionStatement", "src": "7922:21:16" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2863, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2841, "src": "7969:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2862, "name": "Submission", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2222, "src": "7958:10:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 2864, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7958:25:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2865, "nodeType": "EmitStatement", "src": "7953:30:16" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2867, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2841, "src": "8012:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2866, "name": "confirmTransaction", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2939, "src": "7993:18:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 2868, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7993:33:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2869, "nodeType": "ExpressionStatement", "src": "7993:33:16" } ] }, "documentation": { "id": 2825, "nodeType": "StructuredDocumentation", "src": "7219:266:16", "text": "@dev Allows an owner to submit and confirm a transaction.\n @param destination Transaction target address.\n @param value Transaction ether value.\n @param data Transaction data payload.\n @return transactionId Returns transaction ID." }, "functionSelector": "c6427474", "id": 2871, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2834, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "7625:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2835, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7625:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "id": 2836, "modifierName": { "argumentTypes": null, "id": 2833, "name": "ownerExists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2345, "src": "7613:11:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "7613:23:16" }, { "arguments": [ { "argumentTypes": null, "id": 2838, "name": "destination", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2827, "src": "7645:11:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "id": 2839, "modifierName": { "argumentTypes": null, "id": 2837, "name": "notNull", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2434, "src": "7637:7:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "7637:20:16" } ], "name": "submitTransaction", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2832, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2827, "mutability": "mutable", "name": "destination", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2871, "src": "7526:19:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2826, "name": "address", "nodeType": "ElementaryTypeName", "src": "7526:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2829, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2871, "src": "7555:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2828, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7555:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2831, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2871, "src": "7578:19:16", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 2830, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7578:5:16", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "7516:87:16" }, "returnParameters": { "id": 2842, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2841, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2871, "src": "7667:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2840, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7667:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7666:23:16" }, "scope": 3385, "src": "7490:543:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 2938, "nodeType": "Block", "src": "8337:463:16", "statements": [ { "expression": { "argumentTypes": null, "id": 2896, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2889, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2268, "src": "8347:13:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(uint256 => mapping(address => bool))" } }, "id": 2893, "indexExpression": { "argumentTypes": null, "id": 2890, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2874, "src": "8361:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8347:28:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2894, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2891, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "8376:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8376:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "8347:40:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 2895, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "8390:4:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "8347:47:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2897, "nodeType": "ExpressionStatement", "src": "8347:47:16" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2899, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "8422:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2900, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8422:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 2901, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2874, "src": "8434:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2898, "name": "Confirmation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2212, "src": "8409:12:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 2902, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8409:39:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2903, "nodeType": "EmitStatement", "src": "8404:44:16" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2917, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2912, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2905, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2874, "src": "8488:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2904, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3203, "src": "8476:11:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, "id": 2906, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8476:26:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2911, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2907, "name": "unlockTimes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2276, "src": "8518:11:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, "id": 2909, "indexExpression": { "argumentTypes": null, "id": 2908, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2874, "src": "8530:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8518:26:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 2910, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8548:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "8518:31:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "8476:73:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "id": 2916, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "8565:31:16", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2914, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2874, "src": "8582:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2913, "name": "isEmergencyCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3027, "src": "8566:15:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, "id": 2915, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8566:30:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "8476:120:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 2937, "nodeType": "IfStatement", "src": "8459:335:16", "trueBody": { "id": 2936, "nodeType": "Block", "src": "8607:187:16", "statements": [ { "assignments": [ 2919 ], "declarations": [ { "constant": false, "id": 2919, "mutability": "mutable", "name": "unlockTime", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2936, "src": "8621:18:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2918, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8621:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 2924, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2923, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2920, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "8642:5:16", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 2921, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8642:15:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 2922, "name": "lockSeconds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2206, "src": "8660:11:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "8642:29:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "8621:50:16" }, { "expression": { "argumentTypes": null, "id": 2929, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2925, "name": "unlockTimes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2276, "src": "8685:11:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, "id": 2927, "indexExpression": { "argumentTypes": null, "id": 2926, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2874, "src": "8697:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "8685:26:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 2928, "name": "unlockTime", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2919, "src": "8714:10:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "8685:39:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2930, "nodeType": "ExpressionStatement", "src": "8685:39:16" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2932, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2874, "src": "8757:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 2933, "name": "unlockTime", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2919, "src": "8772:10:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2931, "name": "UnlockTimeSet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2254, "src": "8743:13:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, "id": 2934, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8743:40:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2935, "nodeType": "EmitStatement", "src": "8738:45:16" } ] } } ] }, "documentation": { "id": 2872, "nodeType": "StructuredDocumentation", "src": "8039:102:16", "text": "@dev Allows an owner to confirm a transaction.\n @param transactionId Transaction ID." }, "functionSelector": "c01a8c84", "id": 2939, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2877, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "8232:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2878, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8232:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "id": 2879, "modifierName": { "argumentTypes": null, "id": 2876, "name": "ownerExists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2345, "src": "8220:11:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "8220:23:16" }, { "arguments": [ { "argumentTypes": null, "id": 2881, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2874, "src": "8270:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 2882, "modifierName": { "argumentTypes": null, "id": 2880, "name": "transactionExists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2365, "src": "8252:17:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", "src": "8252:32:16" }, { "arguments": [ { "argumentTypes": null, "id": 2884, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2874, "src": "8306:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2885, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "8321:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2886, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8321:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "id": 2887, "modifierName": { "argumentTypes": null, "id": 2883, "name": "notConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2402, "src": "8293:12:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$_t_address_$", "typeString": "modifier (uint256,address)" } }, "nodeType": "ModifierInvocation", "src": "8293:39:16" } ], "name": "confirmTransaction", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2875, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2874, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 2939, "src": "8174:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2873, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8174:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "8173:23:16" }, "returnParameters": { "id": 2888, "nodeType": "ParameterList", "parameters": [], "src": "8337:0:16" }, "scope": 3385, "src": "8146:654:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 3026, "nodeType": "Block", "src": "8883:636:16", "statements": [ { "assignments": [ 2947 ], "declarations": [ { "constant": false, "id": 2947, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3026, "src": "8893:17:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 2946, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8893:5:16", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "id": 2952, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2948, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2262, "src": "8913:12:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" } }, "id": 2950, "indexExpression": { "argumentTypes": null, "id": 2949, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2941, "src": "8926:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8913:27:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" } }, "id": 2951, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": 2289, "src": "8913:32:16", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "8893:52:16" }, { "body": { "id": 3022, "nodeType": "Block", "src": "9008:482:16", "statements": [ { "assignments": [ 2965 ], "declarations": [ { "constant": false, "id": 2965, "mutability": "mutable", "name": "emergencyCall", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3022, "src": "9022:34:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall" }, "typeName": { "contractScope": null, "id": 2964, "name": "EmergencyCall", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2297, "src": "9022:13:16", "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall" } }, "value": null, "visibility": "internal" } ], "id": 2969, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2966, "name": "emergencyCalls", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2300, "src": "9059:14:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" } }, "id": 2968, "indexExpression": { "argumentTypes": null, "id": 2967, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2954, "src": "9074:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9059:17:16", "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_storage", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "9022:54:16" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3017, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3008, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2999, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2990, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 2981, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2976, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2970, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2947, "src": "9112:4:16", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 2971, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9112:11:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2975, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2972, "name": "emergencyCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2965, "src": "9127:13:16", "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } }, "id": 2973, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "paramsBytesCount", "nodeType": "MemberAccess", "referencedDeclaration": 2296, "src": "9127:30:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "34", "id": 2974, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9160:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, "src": "9127:34:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9112:49:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2980, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2977, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2947, "src": "9181:4:16", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 2978, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9181:11:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "34", "id": 2979, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9196:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, "src": "9181:16:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "9112:85:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, "id": 2989, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2982, "name": "emergencyCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2965, "src": "9217:13:16", "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } }, "id": 2983, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", "referencedDeclaration": 2294, "src": "9217:22:16", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 2985, "indexExpression": { "argumentTypes": null, "hexValue": "30", "id": 2984, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9240:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9217:25:16", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2986, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2947, "src": "9246:4:16", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 2988, "indexExpression": { "argumentTypes": null, "hexValue": "30", "id": 2987, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9251:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9246:7:16", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, "src": "9217:36:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "9112:141:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, "id": 2998, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2991, "name": "emergencyCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2965, "src": "9273:13:16", "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } }, "id": 2992, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", "referencedDeclaration": 2294, "src": "9273:22:16", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 2994, "indexExpression": { "argumentTypes": null, "hexValue": "31", "id": 2993, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9296:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9273:25:16", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2995, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2947, "src": "9302:4:16", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 2997, "indexExpression": { "argumentTypes": null, "hexValue": "31", "id": 2996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9307:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9302:7:16", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, "src": "9273:36:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "9112:197:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, "id": 3007, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3000, "name": "emergencyCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2965, "src": "9329:13:16", "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } }, "id": 3001, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", "referencedDeclaration": 2294, "src": "9329:22:16", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 3003, "indexExpression": { "argumentTypes": null, "hexValue": "32", "id": 3002, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9352:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9329:25:16", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3004, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2947, "src": "9358:4:16", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 3006, "indexExpression": { "argumentTypes": null, "hexValue": "32", "id": 3005, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9363:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9358:7:16", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, "src": "9329:36:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "9112:253:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, "id": 3016, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3009, "name": "emergencyCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2965, "src": "9385:13:16", "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } }, "id": 3010, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", "referencedDeclaration": 2294, "src": "9385:22:16", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 3012, "indexExpression": { "argumentTypes": null, "hexValue": "33", "id": 3011, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9408:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9385:25:16", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3013, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2947, "src": "9414:4:16", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 3015, "indexExpression": { "argumentTypes": null, "hexValue": "33", "id": 3014, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9419:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9414:7:16", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, "src": "9385:36:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "9112:309:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 3021, "nodeType": "IfStatement", "src": "9091:389:16", "trueBody": { "id": 3020, "nodeType": "Block", "src": "9436:44:16", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3018, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "9461:4:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 2945, "id": 3019, "nodeType": "Return", "src": "9454:11:16" } ] } } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2957, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2954, "src": "8976:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2958, "name": "emergencyCalls", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2300, "src": "8980:14:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" } }, "id": 2959, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8980:21:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "8976:25:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3023, "initializationExpression": { "assignments": [ 2954 ], "declarations": [ { "constant": false, "id": 2954, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3023, "src": "8961:9:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2953, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8961:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 2956, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 2955, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8973:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "8961:13:16" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 2962, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "9003:3:16", "subExpression": { "argumentTypes": null, "id": 2961, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2954, "src": "9003:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2963, "nodeType": "ExpressionStatement", "src": "9003:3:16" }, "nodeType": "ForStatement", "src": "8956:534:16" }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", "id": 3024, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "9507:5:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "functionReturnParameters": 2945, "id": 3025, "nodeType": "Return", "src": "9500:12:16" } ] }, "documentation": null, "id": 3027, "implemented": true, "kind": "function", "modifiers": [], "name": "isEmergencyCall", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2942, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2941, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3027, "src": "8831:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2940, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8831:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "8830:23:16" }, "returnParameters": { "id": 2945, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2944, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3027, "src": "8877:4:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2943, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8877:4:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "8876:6:16" }, "scope": 3385, "src": "8806:713:16", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { "id": 3050, "nodeType": "Block", "src": "9620:207:16", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3043, "name": "funcName", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3029, "src": "9732:8:16", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "argumentTypes": null, "id": 3041, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "9715:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 3042, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9715:16:16", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 3044, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9715:26:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 3040, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "9705:9:16", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 3045, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9705:37:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "id": 3046, "name": "_paramsBytesCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3031, "src": "9778:17:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3039, "name": "EmergencyCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2297, "src": "9663:13:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_EmergencyCall_$2297_storage_ptr_$", "typeString": "type(struct MultiSigWalletWithTimelock.EmergencyCall storage pointer)" } }, "id": 3047, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [ "selector", "paramsBytesCount" ], "nodeType": "FunctionCall", "src": "9663:147:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" } ], "expression": { "argumentTypes": null, "id": 3036, "name": "emergencyCalls", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2300, "src": "9630:14:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" } }, "id": 3038, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9630:19:16", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_EmergencyCall_$2297_storage_$returns$__$", "typeString": "function (struct MultiSigWalletWithTimelock.EmergencyCall storage ref)" } }, "id": 3048, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9630:190:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3049, "nodeType": "ExpressionStatement", "src": "9630:190:16" } ] }, "documentation": null, "functionSelector": "f075fb90", "id": 3051, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 3034, "modifierName": { "argumentTypes": null, "id": 3033, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2316, "src": "9609:10:16", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "9609:10:16" } ], "name": "addEmergencyCall", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3032, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3029, "mutability": "mutable", "name": "funcName", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3051, "src": "9551:22:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3028, "name": "string", "nodeType": "ElementaryTypeName", "src": "9551:6:16", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3031, "mutability": "mutable", "name": "_paramsBytesCount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3051, "src": "9575:25:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3030, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9575:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "9550:51:16" }, "returnParameters": { "id": 3035, "nodeType": "ParameterList", "parameters": [], "src": "9620:0:16" }, "scope": 3385, "src": "9525:302:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 3084, "nodeType": "Block", "src": "10142:117:16", "statements": [ { "expression": { "argumentTypes": null, "id": 3076, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3069, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2268, "src": "10152:13:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(uint256 => mapping(address => bool))" } }, "id": 3073, "indexExpression": { "argumentTypes": null, "id": 3070, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3054, "src": "10166:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10152:28:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 3074, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3071, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "10181:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3072, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10181:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "10152:40:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", "id": 3075, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "10195:5:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "10152:48:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3077, "nodeType": "ExpressionStatement", "src": "10152:48:16" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3079, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "10226:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3080, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10226:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 3081, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3054, "src": "10238:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3078, "name": "Revocation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2218, "src": "10215:10:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 3082, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10215:37:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3083, "nodeType": "EmitStatement", "src": "10210:42:16" } ] }, "documentation": { "id": 3052, "nodeType": "StructuredDocumentation", "src": "9833:120:16", "text": "@dev Allows an owner to revoke a confirmation for a transaction.\n @param transactionId Transaction ID." }, "functionSelector": "20ea8d86", "id": 3085, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3057, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "10046:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3058, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10046:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "id": 3059, "modifierName": { "argumentTypes": null, "id": 3056, "name": "ownerExists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2345, "src": "10034:11:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "10034:23:16" }, { "arguments": [ { "argumentTypes": null, "id": 3061, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3054, "src": "10076:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3062, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "10091:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3063, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10091:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "id": 3064, "modifierName": { "argumentTypes": null, "id": 3060, "name": "confirmed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2384, "src": "10066:9:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$_t_address_$", "typeString": "modifier (uint256,address)" } }, "nodeType": "ModifierInvocation", "src": "10066:36:16" }, { "arguments": [ { "argumentTypes": null, "id": 3066, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3054, "src": "10123:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 3067, "modifierName": { "argumentTypes": null, "id": 3065, "name": "notExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2417, "src": "10111:11:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", "src": "10111:26:16" } ], "name": "revokeConfirmation", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3055, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3054, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3085, "src": "9986:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3053, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9986:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "9985:23:16" }, "returnParameters": { "id": 3068, "nodeType": "ParameterList", "parameters": [], "src": "10142:0:16" }, "scope": 3385, "src": "9958:301:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 3154, "nodeType": "Block", "src": "10519:594:16", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3104, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3099, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "10537:5:16", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 3100, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10537:15:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3101, "name": "unlockTimes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2276, "src": "10556:11:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, "id": 3103, "indexExpression": { "argumentTypes": null, "id": 3102, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3088, "src": "10568:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10556:26:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10537:45:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "5452414e53414354494f4e5f4e4545445f544f5f554e4c4f434b", "id": 3105, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10584:28:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_0e775be8eed223e88abd3716be242e9114c0d3a20959ded3addfe470831caccb", "typeString": "literal_string \"TRANSACTION_NEED_TO_UNLOCK\"" }, "value": "TRANSACTION_NEED_TO_UNLOCK" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_0e775be8eed223e88abd3716be242e9114c0d3a20959ded3addfe470831caccb", "typeString": "literal_string \"TRANSACTION_NEED_TO_UNLOCK\"" } ], "id": 3098, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "10529:7:16", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3106, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10529:84:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3107, "nodeType": "ExpressionStatement", "src": "10529:84:16" }, { "condition": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3109, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3088, "src": "10640:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3108, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3203, "src": "10628:11:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, "id": 3110, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10628:26:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 3153, "nodeType": "IfStatement", "src": "10624:483:16", "trueBody": { "id": 3152, "nodeType": "Block", "src": "10656:451:16", "statements": [ { "assignments": [ 3112 ], "declarations": [ { "constant": false, "id": 3112, "mutability": "mutable", "name": "transaction", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3152, "src": "10670:31:16", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.Transaction" }, "typeName": { "contractScope": null, "id": 3111, "name": "Transaction", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2292, "src": "10670:11:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.Transaction" } }, "value": null, "visibility": "internal" } ], "id": 3116, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3113, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2262, "src": "10704:12:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" } }, "id": 3115, "indexExpression": { "argumentTypes": null, "id": 3114, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3088, "src": "10717:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10704:27:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "10670:61:16" }, { "expression": { "argumentTypes": null, "id": 3121, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3117, "name": "transaction", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3112, "src": "10745:11:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage pointer" } }, "id": 3119, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "executed", "nodeType": "MemberAccess", "referencedDeclaration": 2291, "src": "10745:20:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 3120, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "10768:4:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "10745:27:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3122, "nodeType": "ExpressionStatement", "src": "10745:27:16" }, { "assignments": [ 3124, null ], "declarations": [ { "constant": false, "id": 3124, "mutability": "mutable", "name": "success", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3152, "src": "10787:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3123, "name": "bool", "nodeType": "ElementaryTypeName", "src": "10787:4:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" }, null ], "id": 3134, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3131, "name": "transaction", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3112, "src": "10877:11:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage pointer" } }, "id": 3132, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": 2289, "src": "10877:16:16", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3125, "name": "transaction", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3112, "src": "10805:11:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage pointer" } }, "id": 3126, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "destination", "nodeType": "MemberAccess", "referencedDeclaration": 2285, "src": "10805:23:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3127, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "call", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10805:28:16", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, "id": 3130, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "names": [ "value" ], "nodeType": "FunctionCallOptions", "options": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3128, "name": "transaction", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3112, "src": "10841:11:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage pointer" } }, "id": 3129, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": 2287, "src": "10841:17:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "src": "10805:54:16", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, "id": 3133, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10805:102:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "10786:121:16" }, { "condition": { "argumentTypes": null, "id": 3135, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3124, "src": "10925:7:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 3150, "nodeType": "Block", "src": "10982:115:16", "statements": [ { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3141, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3088, "src": "11022:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3140, "name": "ExecutionFailure", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2230, "src": "11005:16:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 3142, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11005:31:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3143, "nodeType": "EmitStatement", "src": "11000:36:16" }, { "expression": { "argumentTypes": null, "id": 3148, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3144, "name": "transaction", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3112, "src": "11054:11:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage pointer" } }, "id": 3146, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "executed", "nodeType": "MemberAccess", "referencedDeclaration": 2291, "src": "11054:20:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", "id": 3147, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "11077:5:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "11054:28:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3149, "nodeType": "ExpressionStatement", "src": "11054:28:16" } ] }, "id": 3151, "nodeType": "IfStatement", "src": "10921:176:16", "trueBody": { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3137, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3088, "src": "10949:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3136, "name": "Execution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2226, "src": "10939:9:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 3138, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10939:24:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3139, "nodeType": "EmitStatement", "src": "10934:29:16" } } ] } } ] }, "documentation": { "id": 3086, "nodeType": "StructuredDocumentation", "src": "10265:110:16", "text": "@dev Allows anyone to execute a confirmed transaction.\n @param transactionId Transaction ID." }, "functionSelector": "ee22610b", "id": 3155, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3091, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "10468:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3092, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10468:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "id": 3093, "modifierName": { "argumentTypes": null, "id": 3090, "name": "ownerExists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2345, "src": "10456:11:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "10456:23:16" }, { "arguments": [ { "argumentTypes": null, "id": 3095, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3088, "src": "10500:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 3096, "modifierName": { "argumentTypes": null, "id": 3094, "name": "notExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2417, "src": "10488:11:16", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", "src": "10488:26:16" } ], "name": "executeTransaction", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3089, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3088, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3155, "src": "10408:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3087, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10408:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "10407:23:16" }, "returnParameters": { "id": 3097, "nodeType": "ParameterList", "parameters": [], "src": "10519:0:16" }, "scope": 3385, "src": "10380:733:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 3202, "nodeType": "Block", "src": "11341:304:16", "statements": [ { "assignments": [ 3164 ], "declarations": [ { "constant": false, "id": 3164, "mutability": "mutable", "name": "count", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3202, "src": "11351:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3163, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11351:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 3166, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 3165, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11367:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "11351:17:16" }, { "body": { "id": 3198, "nodeType": "Block", "src": "11423:193:16", "statements": [ { "condition": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3178, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2268, "src": "11441:13:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(uint256 => mapping(address => bool))" } }, "id": 3180, "indexExpression": { "argumentTypes": null, "id": 3179, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3158, "src": "11455:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11441:28:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 3184, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3181, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "11470:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 3183, "indexExpression": { "argumentTypes": null, "id": 3182, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3168, "src": "11477:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11470:9:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11441:39:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 3190, "nodeType": "IfStatement", "src": "11437:88:16", "trueBody": { "id": 3189, "nodeType": "Block", "src": "11482:43:16", "statements": [ { "expression": { "argumentTypes": null, "id": 3187, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3185, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3164, "src": "11500:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "hexValue": "31", "id": 3186, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11509:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "11500:10:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3188, "nodeType": "ExpressionStatement", "src": "11500:10:16" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3191, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3164, "src": "11543:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 3192, "name": "required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2281, "src": "11552:8:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11543:17:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 3197, "nodeType": "IfStatement", "src": "11539:67:16", "trueBody": { "id": 3196, "nodeType": "Block", "src": "11562:44:16", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3194, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "11587:4:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 3162, "id": 3195, "nodeType": "Return", "src": "11580:11:16" } ] } } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3174, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3171, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3168, "src": "11399:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3172, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "11403:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 3173, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11403:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11399:17:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3199, "initializationExpression": { "assignments": [ 3168 ], "declarations": [ { "constant": false, "id": 3168, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3199, "src": "11384:9:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3167, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11384:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 3170, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 3169, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11396:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "11384:13:16" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 3176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "11418:3:16", "subExpression": { "argumentTypes": null, "id": 3175, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3168, "src": "11418:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3177, "nodeType": "ExpressionStatement", "src": "11418:3:16" }, "nodeType": "ForStatement", "src": "11379:237:16" }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", "id": 3200, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "11633:5:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "functionReturnParameters": 3162, "id": 3201, "nodeType": "Return", "src": "11626:12:16" } ] }, "documentation": { "id": 3156, "nodeType": "StructuredDocumentation", "src": "11119:146:16", "text": "@dev Returns the confirmation status of a transaction.\n @param transactionId Transaction ID.\n @return Confirmation status." }, "functionSelector": "784547a7", "id": 3203, "implemented": true, "kind": "function", "modifiers": [], "name": "isConfirmed", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3159, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3158, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3203, "src": "11291:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3157, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11291:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "11290:23:16" }, "returnParameters": { "id": 3162, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3161, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3203, "src": "11335:4:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3160, "name": "bool", "nodeType": "ElementaryTypeName", "src": "11335:4:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "11334:6:16" }, "scope": 3385, "src": "11270:375:16", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { "id": 3237, "nodeType": "Block", "src": "11934:172:16", "statements": [ { "body": { "id": 3235, "nodeType": "Block", "src": "11988:112:16", "statements": [ { "condition": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3222, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2268, "src": "12006:13:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(uint256 => mapping(address => bool))" } }, "id": 3224, "indexExpression": { "argumentTypes": null, "id": 3223, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3206, "src": "12020:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12006:28:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 3228, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3225, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "12035:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 3227, "indexExpression": { "argumentTypes": null, "id": 3226, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3212, "src": "12042:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12035:9:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12006:39:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 3234, "nodeType": "IfStatement", "src": "12002:88:16", "trueBody": { "id": 3233, "nodeType": "Block", "src": "12047:43:16", "statements": [ { "expression": { "argumentTypes": null, "id": 3231, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3229, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3209, "src": "12065:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "hexValue": "31", "id": 3230, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12074:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "12065:10:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3232, "nodeType": "ExpressionStatement", "src": "12065:10:16" } ] } } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3218, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3215, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3212, "src": "11964:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3216, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "11968:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 3217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11968:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11964:17:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3236, "initializationExpression": { "assignments": [ 3212 ], "declarations": [ { "constant": false, "id": 3212, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3236, "src": "11949:9:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3211, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11949:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 3214, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 3213, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11961:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "11949:13:16" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 3220, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "11983:3:16", "subExpression": { "argumentTypes": null, "id": 3219, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3212, "src": "11983:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3221, "nodeType": "ExpressionStatement", "src": "11983:3:16" }, "nodeType": "ForStatement", "src": "11944:156:16" } ] }, "documentation": { "id": 3204, "nodeType": "StructuredDocumentation", "src": "11682:156:16", "text": "@dev Returns number of confirmations of a transaction.\n @param transactionId Transaction ID.\n @return count Number of confirmations." }, "functionSelector": "8b51d13f", "id": 3238, "implemented": true, "kind": "function", "modifiers": [], "name": "getConfirmationCount", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3207, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3206, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3238, "src": "11873:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3205, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11873:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "11872:23:16" }, "returnParameters": { "id": 3210, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3209, "mutability": "mutable", "name": "count", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3238, "src": "11919:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3208, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11919:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "11918:15:16" }, "scope": 3385, "src": "11843:263:16", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 3282, "nodeType": "Block", "src": "12503:216:16", "statements": [ { "body": { "id": 3280, "nodeType": "Block", "src": "12560:153:16", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3273, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3264, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3258, "name": "pending", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3241, "src": "12579:7:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "id": 3263, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "12590:25:16", "subExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3259, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2262, "src": "12591:12:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" } }, "id": 3261, "indexExpression": { "argumentTypes": null, "id": 3260, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3249, "src": "12604:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12591:15:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" } }, "id": 3262, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "executed", "nodeType": "MemberAccess", "referencedDeclaration": 2291, "src": "12591:24:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "12579:36:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 3265, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "12578:38:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3271, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3266, "name": "executed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3243, "src": "12621:8:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3267, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2262, "src": "12633:12:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" } }, "id": 3269, "indexExpression": { "argumentTypes": null, "id": 3268, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3249, "src": "12646:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12633:15:16", "typeDescriptions": { "typeIdentifier": "t_struct$_Transaction_$2292_storage", "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" } }, "id": 3270, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "executed", "nodeType": "MemberAccess", "referencedDeclaration": 2291, "src": "12633:24:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "12621:36:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 3272, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "12620:38:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "12578:80:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 3279, "nodeType": "IfStatement", "src": "12574:129:16", "trueBody": { "id": 3278, "nodeType": "Block", "src": "12660:43:16", "statements": [ { "expression": { "argumentTypes": null, "id": 3276, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3274, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3246, "src": "12678:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "hexValue": "31", "id": 3275, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12687:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "12678:10:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3277, "nodeType": "ExpressionStatement", "src": "12678:10:16" } ] } } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3254, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3252, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3249, "src": "12533:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 3253, "name": "transactionCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2283, "src": "12537:16:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "12533:20:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3281, "initializationExpression": { "assignments": [ 3249 ], "declarations": [ { "constant": false, "id": 3249, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3281, "src": "12518:9:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3248, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12518:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 3251, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 3250, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12530:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "12518:13:16" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 3256, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "12555:3:16", "subExpression": { "argumentTypes": null, "id": 3255, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3249, "src": "12555:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3257, "nodeType": "ExpressionStatement", "src": "12555:3:16" }, "nodeType": "ForStatement", "src": "12513:200:16" } ] }, "documentation": { "id": 3239, "nodeType": "StructuredDocumentation", "src": "12112:262:16", "text": "@dev Returns total number of transactions after filers are applied.\n @param pending Include pending transactions.\n @param executed Include executed transactions.\n @return count Total number of transactions after filters are applied." }, "functionSelector": "54741525", "id": 3283, "implemented": true, "kind": "function", "modifiers": [], "name": "getTransactionCount", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3244, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3241, "mutability": "mutable", "name": "pending", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3283, "src": "12408:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3240, "name": "bool", "nodeType": "ElementaryTypeName", "src": "12408:4:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3243, "mutability": "mutable", "name": "executed", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3283, "src": "12422:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3242, "name": "bool", "nodeType": "ElementaryTypeName", "src": "12422:4:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "12407:29:16" }, "returnParameters": { "id": 3247, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3246, "mutability": "mutable", "name": "count", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3283, "src": "12484:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3245, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12484:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "12483:15:16" }, "scope": 3385, "src": "12379:340:16", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 3292, "nodeType": "Block", "src": "12872:30:16", "statements": [ { "expression": { "argumentTypes": null, "id": 3290, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "12889:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "functionReturnParameters": 3289, "id": 3291, "nodeType": "Return", "src": "12882:13:16" } ] }, "documentation": { "id": 3284, "nodeType": "StructuredDocumentation", "src": "12725:80:16", "text": "@dev Returns list of owners.\n @return List of owner addresses." }, "functionSelector": "a0e67e2b", "id": 3293, "implemented": true, "kind": "function", "modifiers": [], "name": "getOwners", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3285, "nodeType": "ParameterList", "parameters": [], "src": "12828:2:16" }, "returnParameters": { "id": 3289, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3288, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3293, "src": "12854:16:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 3286, "name": "address", "nodeType": "ElementaryTypeName", "src": "12854:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3287, "length": null, "nodeType": "ArrayTypeName", "src": "12854:9:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], "src": "12853:18:16" }, "scope": 3385, "src": "12810:92:16", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 3383, "nodeType": "Block", "src": "13235:491:16", "statements": [ { "assignments": [ 3306 ], "declarations": [ { "constant": false, "id": 3306, "mutability": "mutable", "name": "confirmationsTemp", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3383, "src": "13245:34:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 3304, "name": "address", "nodeType": "ElementaryTypeName", "src": "13245:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3305, "length": null, "nodeType": "ArrayTypeName", "src": "13245:9:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], "id": 3313, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3310, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "13296:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 3311, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "13296:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3309, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "13282:13:16", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { "id": 3307, "name": "address", "nodeType": "ElementaryTypeName", "src": "13286:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3308, "length": null, "nodeType": "ArrayTypeName", "src": "13286:9:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, "id": 3312, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13282:28:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", "src": "13245:65:16" }, { "assignments": [ 3315 ], "declarations": [ { "constant": false, "id": 3315, "mutability": "mutable", "name": "count", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3383, "src": "13320:13:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3314, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "13320:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 3317, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 3316, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13336:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "13320:17:16" }, { "assignments": [ 3319 ], "declarations": [ { "constant": false, "id": 3319, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3383, "src": "13347:9:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3318, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "13347:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 3320, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "13347:9:16" }, { "body": { "id": 3353, "nodeType": "Block", "src": "13403:166:16", "statements": [ { "condition": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3332, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2268, "src": "13421:13:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(uint256 => mapping(address => bool))" } }, "id": 3334, "indexExpression": { "argumentTypes": null, "id": 3333, "name": "transactionId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3296, "src": "13435:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13421:28:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 3338, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3335, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "13450:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 3337, "indexExpression": { "argumentTypes": null, "id": 3336, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "13457:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13450:9:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13421:39:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 3352, "nodeType": "IfStatement", "src": "13417:142:16", "trueBody": { "id": 3351, "nodeType": "Block", "src": "13462:97:16", "statements": [ { "expression": { "argumentTypes": null, "id": 3345, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3339, "name": "confirmationsTemp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3306, "src": "13480:17:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 3341, "indexExpression": { "argumentTypes": null, "id": 3340, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3315, "src": "13498:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "13480:24:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3342, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "13507:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 3344, "indexExpression": { "argumentTypes": null, "id": 3343, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "13514:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13507:9:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "13480:36:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3346, "nodeType": "ExpressionStatement", "src": "13480:36:16" }, { "expression": { "argumentTypes": null, "id": 3349, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3347, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3315, "src": "13534:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "hexValue": "31", "id": 3348, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13543:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "13534:10:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3350, "nodeType": "ExpressionStatement", "src": "13534:10:16" } ] } } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3328, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3325, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "13379:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3326, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2279, "src": "13383:6:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 3327, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "13383:13:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "13379:17:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3354, "initializationExpression": { "expression": { "argumentTypes": null, "id": 3323, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3321, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "13372:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 3322, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13376:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "13372:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3324, "nodeType": "ExpressionStatement", "src": "13372:5:16" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 3330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "13398:3:16", "subExpression": { "argumentTypes": null, "id": 3329, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "13398:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3331, "nodeType": "ExpressionStatement", "src": "13398:3:16" }, "nodeType": "ForStatement", "src": "13367:202:16" }, { "expression": { "argumentTypes": null, "id": 3361, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3355, "name": "_confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3300, "src": "13579:14:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3359, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3315, "src": "13610:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3358, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "13596:13:16", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { "id": 3356, "name": "address", "nodeType": "ElementaryTypeName", "src": "13600:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3357, "length": null, "nodeType": "ArrayTypeName", "src": "13600:9:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, "id": 3360, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13596:20:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "src": "13579:37:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 3362, "nodeType": "ExpressionStatement", "src": "13579:37:16" }, { "body": { "id": 3381, "nodeType": "Block", "src": "13655:65:16", "statements": [ { "expression": { "argumentTypes": null, "id": 3379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3373, "name": "_confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3300, "src": "13669:14:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 3375, "indexExpression": { "argumentTypes": null, "id": 3374, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "13684:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "13669:17:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3376, "name": "confirmationsTemp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3306, "src": "13689:17:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 3378, "indexExpression": { "argumentTypes": null, "id": 3377, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "13707:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13689:20:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "13669:40:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3380, "nodeType": "ExpressionStatement", "src": "13669:40:16" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3369, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3367, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "13639:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 3368, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3315, "src": "13643:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "13639:9:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3382, "initializationExpression": { "expression": { "argumentTypes": null, "id": 3365, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3363, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "13632:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 3364, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13636:1:16", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "13632:5:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3366, "nodeType": "ExpressionStatement", "src": "13632:5:16" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 3371, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "13650:3:16", "subExpression": { "argumentTypes": null, "id": 3370, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "13650:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3372, "nodeType": "ExpressionStatement", "src": "13650:3:16" }, "nodeType": "ForStatement", "src": "13627:93:16" } ] }, "documentation": { "id": 3294, "nodeType": "StructuredDocumentation", "src": "12908:189:16", "text": "@dev Returns array with owner addresses, which confirmed transaction.\n @param transactionId Transaction ID.\n @return _confirmations Returns array of owner addresses." }, "functionSelector": "b5dc40c3", "id": 3384, "implemented": true, "kind": "function", "modifiers": [], "name": "getConfirmations", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3297, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3296, "mutability": "mutable", "name": "transactionId", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3384, "src": "13128:21:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3295, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "13128:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "13127:23:16" }, "returnParameters": { "id": 3301, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3300, "mutability": "mutable", "name": "_confirmations", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3384, "src": "13198:31:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 3298, "name": "address", "nodeType": "ElementaryTypeName", "src": "13198:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3299, "length": null, "nodeType": "ArrayTypeName", "src": "13198:9:16", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], "src": "13197:33:16" }, "scope": 3385, "src": "13102:624:16", "stateMutability": "view", "virtual": false, "visibility": "external" } ], "scope": 3386, "src": "204:13524:16" } ], "src": "145:13584:16" }, "compiler": { "name": "solc", "version": "0.6.9+commit.3e3065ac.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.2.3", "updatedAt": "2020-11-06T08:03:35.513Z", "devdoc": { "methods": { "addOwner(address)": { "details": "Allows to add a new owner. Transaction has to be sent by wallet.", "params": { "owner": "Address of new owner." } }, "changeLockSeconds(uint256)": { "details": "Changes the duration of the time lock for transactions.", "params": { "_lockSeconds": "Duration needed after a transaction is confirmed and before it becomes executable, in seconds." } }, "changeRequirement(uint256)": { "details": "Allows to change the number of required confirmations. Transaction has to be sent by wallet.", "params": { "_required": "Number of required confirmations." } }, "confirmTransaction(uint256)": { "details": "Allows an owner to confirm a transaction.", "params": { "transactionId": "Transaction ID." } }, "constructor": { "details": "Contract constructor sets initial owners and required number of confirmations.", "params": { "_owners": "List of initial owners.", "_required": "Number of required confirmations." } }, "executeTransaction(uint256)": { "details": "Allows anyone to execute a confirmed transaction.", "params": { "transactionId": "Transaction ID." } }, "getConfirmationCount(uint256)": { "details": "Returns number of confirmations of a transaction.", "params": { "transactionId": "Transaction ID." }, "returns": { "count": "Number of confirmations." } }, "getConfirmations(uint256)": { "details": "Returns array with owner addresses, which confirmed transaction.", "params": { "transactionId": "Transaction ID." }, "returns": { "_confirmations": "Returns array of owner addresses." } }, "getOwners()": { "details": "Returns list of owners.", "returns": { "_0": "List of owner addresses." } }, "getTransactionCount(bool,bool)": { "details": "Returns total number of transactions after filers are applied.", "params": { "executed": "Include executed transactions.", "pending": "Include pending transactions." }, "returns": { "count": "Total number of transactions after filters are applied." } }, "isConfirmed(uint256)": { "details": "Returns the confirmation status of a transaction.", "params": { "transactionId": "Transaction ID." }, "returns": { "_0": "Confirmation status." } }, "removeOwner(address)": { "details": "Allows to remove an owner. Transaction has to be sent by wallet.", "params": { "owner": "Address of owner." } }, "replaceOwner(address,address)": { "details": "Allows to replace an owner with a new owner. Transaction has to be sent by wallet.", "params": { "owner": "Address of new owner." } }, "revokeConfirmation(uint256)": { "details": "Allows an owner to revoke a confirmation for a transaction.", "params": { "transactionId": "Transaction ID." } }, "submitTransaction(address,uint256,bytes)": { "details": "Allows an owner to submit and confirm a transaction.", "params": { "data": "Transaction data payload.", "destination": "Transaction target address.", "value": "Transaction ether value." }, "returns": { "transactionId": "Returns transaction ID." } } } }, "userdoc": { "methods": {} } }