diff --git a/.gitignore b/.gitignore index 09edc7c82361..bd5df971458b 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,4 @@ env.yml *.log .serverless +__pycache__ \ No newline at end of file diff --git a/omgx_examples/compound-simple/build-ovm/Comp.json b/omgx_examples/compound-simple/build-ovm/Comp.json new file mode 100644 index 000000000000..62ce2cf770be --- /dev/null +++ b/omgx_examples/compound-simple/build-ovm/Comp.json @@ -0,0 +1,27629 @@ +{ + "contractName": "Comp", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "delegator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "fromDelegate", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "toDelegate", + "type": "address" + } + ], + "name": "DelegateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "delegate", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "previousBalance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newBalance", + "type": "uint256" + } + ], + "name": "DelegateVotesChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "DELEGATION_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "DOMAIN_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "name": "checkpoints", + "outputs": [ + { + "internalType": "uint32", + "name": "fromBlock", + "type": "uint32" + }, + { + "internalType": "uint96", + "name": "votes", + "type": "uint96" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "delegates", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "numCheckpoints", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "rawAmount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "rawAmount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "src", + "type": "address" + }, + { + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "rawAmount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "delegatee", + "type": "address" + } + ], + "name": "delegate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "delegatee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "delegateBySig", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "getCurrentVotes", + "outputs": [ + { + "internalType": "uint96", + "name": "", + "type": "uint96" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + } + ], + "name": "getPriorVotes", + "outputs": [ + { + "internalType": "uint96", + "name": "", + "type": "uint96" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.16-develop.2020.11.10+ovm+commit.00cdd204\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromDelegate\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toDelegate\",\"type\":\"address\"}],\"name\":\"DelegateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"DelegateVotesChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"DELEGATION_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOMAIN_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rawAmount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"checkpoints\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"fromBlock\",\"type\":\"uint32\"},{\"internalType\":\"uint96\",\"name\":\"votes\",\"type\":\"uint96\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"delegateBySig\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getCurrentVotes\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPriorVotes\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"numCheckpoints\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rawAmount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rawAmount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"params\":{\"account\":\"The address of the account holding the funds\",\"spender\":\"The address of the account spending the funds\"},\"return\":\"The number of tokens approved\"},\"approve(address,uint256)\":{\"details\":\"This will overwrite the approval amount for `spender` and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve)\",\"params\":{\"rawAmount\":\"The number of tokens that are approved (2^256-1 means infinite)\",\"spender\":\"The address of the account which may transfer tokens\"},\"return\":\"Whether or not the approval succeeded\"},\"balanceOf(address)\":{\"params\":{\"account\":\"The address of the account to get the balance of\"},\"return\":\"The number of tokens held\"},\"constructor\":{\"params\":{\"account\":\"The initial account to grant all the tokens\"}},\"delegate(address)\":{\"params\":{\"delegatee\":\"The address to delegate votes to\"}},\"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"params\":{\"delegatee\":\"The address to delegate votes to\",\"expiry\":\"The time at which to expire the signature\",\"nonce\":\"The contract state required to match the signature\",\"r\":\"Half of the ECDSA signature pair\",\"s\":\"Half of the ECDSA signature pair\",\"v\":\"The recovery byte of the signature\"}},\"getCurrentVotes(address)\":{\"params\":{\"account\":\"The address to get votes balance\"},\"return\":\"The number of current votes for `account`\"},\"getPriorVotes(address,uint256)\":{\"details\":\"Block number must be a finalized block or else this function will revert to prevent misinformation.\",\"params\":{\"account\":\"The address of the account to check\",\"blockNumber\":\"The block number to get the vote balance at\"},\"return\":\"The number of votes the account had as of the given block\"},\"transfer(address,uint256)\":{\"params\":{\"dst\":\"The address of the destination account\",\"rawAmount\":\"The number of tokens to transfer\"},\"return\":\"Whether or not the transfer succeeded\"},\"transferFrom(address,address,uint256)\":{\"params\":{\"dst\":\"The address of the destination account\",\"rawAmount\":\"The number of tokens to transfer\",\"src\":\"The address of the source account\"},\"return\":\"Whether or not the transfer succeeded\"}}},\"userdoc\":{\"methods\":{\"allowance(address,address)\":{\"notice\":\"Get the number of tokens `spender` is approved to spend on behalf of `account`\"},\"approve(address,uint256)\":{\"notice\":\"Approve `spender` to transfer up to `amount` from `src`\"},\"balanceOf(address)\":{\"notice\":\"Get the number of tokens held by the `account`\"},\"constructor\":\"Construct a new Comp token\",\"delegate(address)\":{\"notice\":\"Delegate votes from `msg.sender` to `delegatee`\"},\"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"notice\":\"Delegates votes from signatory to `delegatee`\"},\"getCurrentVotes(address)\":{\"notice\":\"Gets the current votes balance for `account`\"},\"getPriorVotes(address,uint256)\":{\"notice\":\"Determine the prior number of votes for an account as of a block number\"},\"transfer(address,uint256)\":{\"notice\":\"Transfer `amount` tokens from `msg.sender` to `dst`\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Transfer `amount` tokens from `src` to `dst`\"}}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/Comp.sol\":\"Comp\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"project:/contracts/Comp.sol\":{\"keccak256\":\"0x539f7158013dd91efd3ad42dc6a56e0f7aebdca06063d40ce7b6e9a981b726a3\",\"urls\":[\"bzz-raw://8d6a3e0999a57ba4395445570dab58dc5e977bbdc5f39bb5a78e9f6986a5499e\",\"dweb:/ipfs/QmP6ndHfRx9ywu7uPPRs8LvUpHTYn1owzLacWyW8sPd5cY\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001c5760008062000019620000ef565b50505b5060405162002537380380620025378339810160408190526200003f9162000224565b6001600160a01b038116600090815260016020526a084595161401484a0000009060409020600181620000716200015c565b816001600160601b0302191690836001600160601b031602179062000095620001be565b5050506001600160a01b03811660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a084595161401484a000000604051620000e0919062000269565b60405180910390a350620002b0565b632a2a7adb598160e01b8152600481016020815285602082015260005b86811015620001295780860151828201604001526020016200010c565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b6040811015620001b957600082820152602001620001a0565b505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b600081526020620001a0565b6000815190506200021e816200028e565b92915050565b60006020828403121562000242576000806200023f620000ef565b50505b60006200025084846200020d565b949350505050565b62000263816200028b565b82525050565b602081016200021e828462000258565b60006001600160a01b0382166200021e565b90565b620002998162000279565b8114620002ad57600080620001b9620000ef565b50565b61227780620002c06000396000f3fe608060405234801561001957600080610016611610565b50505b50600436106100fa5760003560e01c806306fdde0314610108578063095ea7b31461012657806318160ddd1461014657806320606b701461015b57806323b872dd14610163578063313ce56714610176578063587cde1e1461018b5780635c19a95c146101ab5780636fcfff45146101c057806370a08231146101e0578063782d6fe1146101f35780637ecebe001461021357806395d89b4114610226578063a9059cbb1461022e578063b4b5ea5714610241578063c3cda52014610254578063dd62ed3e14610267578063e7a324dc1461027a578063f1127ed814610282575b600080610105611610565b50505b6101106102a3565b60405161011d9190611f1e565b60405180910390f35b6101396101343660046119f7565b6102c5565b60405161011d9190611e74565b61014e6103c1565b60405161011d9190611e82565b61014e6103d0565b6101396101713660046119a1565b6103e7565b61017e610576565b60405161011d9190611fb8565b61019e61019936600461192f565b61057b565b60405161011d9190611e66565b6101be6101b936600461192f565b6105a8565b005b6101d36101ce36600461192f565b6105bd565b60405161011d9190611f8f565b61014e6101ee36600461192f565b6105e7565b6102066102013660046119f7565b610622565b60405161011d9190611fd4565b61014e61022136600461192f565b6108e9565b610110610904565b61013961023c3660046119f7565b610922565b61020661024f36600461192f565b610964565b6101be610262366004611a30565b610a00565b61014e61027536600461195e565b610c8e565b61014e610ce3565b610295610290366004611ac0565b610cef565b60405161011d929190611f9d565b60405160408082019052600881526710dbdb5c1bdd5b9960c21b602082015281565b6000806000198314156102db57506000196102fe565b6102fb836040516060810160405260258082526120fc6020830139610d48565b90505b806000805a61030b61167b565b6001600160a01b03166001600160a01b031681526020019081526020016000206001600160a01b03861660009081526020919091526040902060018161034f6116d0565b816001600160601b0302191690836001600160601b031602179061037161171c565b505050836001600160a01b03165a61038761167b565b6001600160a01b0316600080516020612230833981519152836040516103ad9190611fc6565b60405180910390a360019150505b92915050565b6a084595161401484a00000081565b6040516103dc90611e50565b604051809103902081565b6000805a6103f361167b565b6001600160a01b03861660009081526020819052909150604081206001600160a01b0383166000908152602091909152604090206000906104326116d0565b906101000a90046001600160601b031690506000610466856040516060810160405260258082526120fc6020830139610d48565b9050866001600160a01b0316836001600160a01b03161415801561049357506001600160601b0382811614155b1561055c5760006104bb838360405160608101604052603d8082526121f36020830139610d89565b6001600160a01b038916600090815260208190529091508190604090206001600160a01b0386166000908152602091909152604090206001816104fc6116d0565b816001600160601b0302191690836001600160601b031602179061051e61171c565b505050836001600160a01b0316886001600160a01b0316600080516020612230833981519152836040516105529190611fc6565b60405180910390a3505b610567878783610dda565b600193505050505b9392505050565b601281565b6002602052806000526040600020600091506105956116d0565b906101000a90046001600160a01b031681565b6105ba5a6105b461167b565b8261103f565b50565b6004602052806000526040600020600091506105d76116d0565b906101000a900463ffffffff1681565b6001600160a01b038116600090815260016020526040812060009061060a6116d0565b6001600160601b036101009290920a90041692915050565b60005a61062d61176a565b821061065d5760405162461bcd60e51b815260040161064b90611f4f565b6040518091039061065a611610565b50505b6001600160a01b03831660009081526004602052604081206000906106806116d0565b63ffffffff6101009290920a9004169050806106a05760009150506103bb565b6001600160a01b0384166000908152600360205283906040902063ffffffff6000198401166000908152602091909152604090206000906106df6116d0565b906101000a900463ffffffff1663ffffffff161161074c576001600160a01b038416600090815260036020526040902063ffffffff6000198301166000908152602091909152604090206004906107346116d0565b906101000a90046001600160601b03169150506103bb565b6001600160a01b038416600090815260036020528390604090206000808052602091909152604090206000906107806116d0565b906101000a900463ffffffff1663ffffffff1611156107a35760009150506103bb565b600060001982015b8163ffffffff168163ffffffff16111561089557600282820363ffffffff160481036107d56117b0565b6001600160a01b038816600090815260036020526040902063ffffffff831660009081526020919091526040902060405160408082019052908160008261081a6116d0565b63ffffffff6101009290920a90041681526020016004826108396116d0565b6001600160601b036101009290920a900416905250905086815163ffffffff161415610870578060200151955050505050506103bb565b86815163ffffffff1610156108875781935061088e565b6001820392505b50506107ab565b6001600160a01b038616600090815260036020526040902063ffffffff83166000908152602091909152604090206004906108ce6116d0565b906101000a90046001600160601b0316935050505092915050565b600560205280600052604060002090506109016116d0565b81565b6040516040808201905260048152630434f4d560e41b602082015281565b600080610945836040516060810160405260268082526121416020830139610d48565b905061095a5a61095361167b565b8583610dda565b5060019392505050565b6001600160a01b0381166000908152600460205280604081206000906109886116d0565b906101000a900463ffffffff16905060008163ffffffff16116109ac57600061056f565b6001600160a01b038316600090815260036020526040902063ffffffff6000198301166000908152602091909152604090206004906109e96116d0565b906101000a90046001600160601b03169392505050565b6000604051610a0e90611e50565b604051809103902060405160408082019052600881526710dbdb5c1bdd5b9960c21b602082015280519060200120610a44611156565b5a63996d79a5598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051925060005b6040811015610a9a57600082820152602001610a83565b505050604051602001610ab09493929190611ece565b6040516020818303038152906040528051906020012090506000604051610ad690611e5b565b6040518091039020888888604051602001610af49493929190611e90565b60405160208183030381529060405280519060200120905060008282604051602001610b21929190611e1f565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610b5e9493929190611f03565b6020604051602081039080840390855a610b766117c7565b5050505050158015610b95573d6000803e3d6000610b92611610565b50505b5050506020604051035190506001600160a01b038116610bd95760405162461bcd60e51b8152600401610bc790611f2f565b60405180910390610bd6611610565b50505b6001600160a01b0381166000908152600560205260409020600081610bfc6116d0565b91600183019150610c0b61171c565b50508914610c3d5760405162461bcd60e51b8152600401610c2b90611f5f565b60405180910390610c3a611610565b50505b875a610c47611877565b1115610c775760405162461bcd60e51b8152600401610c6590611f3f565b60405180910390610c74611610565b50505b610c81818b61103f565b505050505b505050505050565b6001600160a01b03821660009081526020819052604081206001600160a01b038316600090815260209190915260409020600090610cca6116d0565b6001600160601b036101009290920a9004169392505050565b6040516103dc90611e5b565b600360205281600052604060002060205280600052604060002091506000905081610d186116d0565b63ffffffff6101009290920a90041690600481610d336116d0565b906101000a90046001600160601b0316905082565b600081600160601b8410610d815760405162461bcd60e51b8152600401610d6f9190611f1e565b60405180910390610d7e611610565b50505b509192915050565b6000836001600160601b0316836001600160601b031611158290610dd25760405162461bcd60e51b8152600401610dc09190611f1e565b60405180910390610dcf611610565b50505b505050900390565b6001600160a01b038316610e125760405162461bcd60e51b8152600401610e0090611f7f565b60405180910390610e0f611610565b50505b6001600160a01b038216610e4a5760405162461bcd60e51b8152600401610e3890611f6f565b60405180910390610e47611610565b50505b6001600160a01b03831660009081526001602052610e9e9060409020600090610e716116d0565b906101000a90046001600160601b0316826040516060810160405260368082526120c66020830139610d89565b6001600160a01b0384166000908152600160205260409020600181610ec16116d0565b816001600160601b0302191690836001600160601b0316021790610ee361171c565b5050506001600160a01b03821660009081526001602052610f3a9060409020600090610f0d6116d0565b906101000a90046001600160601b0316826040516060810160405260308082526121c36020830139611168565b6001600160a01b0383166000908152600160205260409020600181610f5d6116d0565b816001600160601b0302191690836001600160601b0316021790610f7f61171c565b505050816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610fc59190611fc6565b60405180910390a36001600160a01b0383166000908152600260205261103a9060409020600090610ff46116d0565b6001600160a01b03858116600090815260026020526101009390930a9091041690604090206000906110246116d0565b906101000a90046001600160a01b0316836111b6565b505050565b6001600160a01b03821660009081526002602052604081206000906110626116d0565b6001600160a01b03858116600090815260016020526101009390930a909104169150604081206000906110936116d0565b906101000a90046001600160601b031690508260026000866001600160a01b03166001600160a01b031681526020019081526020016000206001816110d66116d0565b816001600160a01b0302191690836001600160a01b03160217906110f861171c565b505050826001600160a01b0316826001600160a01b0316856001600160a01b03167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a46111508284836111b6565b50505050565b6000805a6111626118bd565b91505090565b6000838301826001600160601b0380871690831610156111ad5760405162461bcd60e51b815260040161119b9190611f1e565b604051809103906111aa611610565b50505b50949350505050565b816001600160a01b0316836001600160a01b0316141580156111e157506000816001600160601b0316115b1561103a576001600160a01b038316156112c2576001600160a01b03831660009081526004602052604081206000906112186116d0565b906101000a900463ffffffff1690506000808263ffffffff161161123d57600061128b565b6001600160a01b038516600090815260036020526040902063ffffffff60001984011660009081526020919091526040902060049061127a6116d0565b906101000a90046001600160601b03165b905060006112b0828560405160608101604052602880825261219b6020830139610d89565b90506112be86848484611396565b5050505b6001600160a01b0382161561103a576001600160a01b03821660009081526004602052604081206000906112f46116d0565b906101000a900463ffffffff1690506000808263ffffffff1611611319576000611367565b6001600160a01b038416600090815260036020526040902063ffffffff6000198401166000908152602091909152604090206004906113566116d0565b906101000a90046001600160601b03165b9050600061138c82856040516060810160405260278082526122506020830139611168565b9050610c86858484845b60006113c05a6113a461176a565b60405160608101604052603480825261216760208301396115e9565b905060008463ffffffff1611801561142d57506001600160a01b0385166000908152600360205263ffffffff8216906040902063ffffffff6000198701166000908152602091909152604090206000906114186116d0565b906101000a900463ffffffff1663ffffffff16145b1561149e576001600160a01b0385166000908152600360205282906040902063ffffffff600019870116600090815260209190915260409020600160201b816114746116d0565b816001600160601b0302191690836001600160601b031602179061149661171c565b50505061159f565b6040516040808201815263ffffffff831682526001600160601b0384166020808401919091526001600160a01b038816600090815260039091522063ffffffff86166000908152602091909152604090208151816001816114fd6116d0565b8163ffffffff021916908363ffffffff1602179061151961171c565b505050602082015181600160201b816115306116d0565b816001600160601b0302191690836001600160601b031602179061155261171c565b5050506001600160a01b03871660009081526004602052600187019250604091502060018161157f6116d0565b8163ffffffff021916908363ffffffff1602179061159b61171c565b5050505b846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72484846040516115da929190611fe2565b60405180910390a25050505050565b600081600160201b8410610d815760405162461bcd60e51b8152600401610d6f9190611f1e565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561164857808601518282016040015260200161162d565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b604081101561103a576000828201526020016116b9565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b805160008252935060206116b9565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b6000815260206116b9565b635a98c361598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b805160008252935060206116b9565b604051604080820190526000808252602082015290565b638540661f598160e01b8152836004820152846024820152606060448201528660648201526084810160005b8881101561180b5780880151828201526020016117f3565b506060828960a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8b8b82606087013350600060045af15059845b8181101561186c5760008152602001611858565b50919b505050505050565b63bdbf8c36598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b805160008252935060206116b9565b6390580256598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b805160008252935060206116b9565b80356103bb81612090565b80356103bb816120aa565b80356103bb816120b3565b80356103bb816120bc565b60006020828403121561194a57600080611947611610565b50505b60006119568484611903565b949350505050565b6000806040838503121561197a57600080611977611610565b50505b60006119868585611903565b925050602061199785828601611903565b9150509250929050565b6000806000606084860312156119bf576000806119bc611610565b50505b60006119cb8686611903565b93505060206119dc86828701611903565b92505060406119ed8682870161190e565b9150509250925092565b60008060408385031215611a1357600080611a10611610565b50505b6000611a1f8585611903565b92505060206119978582860161190e565b60008060008060008060c08789031215611a5257600080611a4f611610565b50505b6000611a5e8989611903565b9650506020611a6f89828a0161190e565b9550506040611a8089828a0161190e565b9450506060611a9189828a01611924565b9350506080611aa289828a0161190e565b92505060a0611ab389828a0161190e565b9150509295509295509295565b60008060408385031215611adc57600080611ad9611610565b50505b6000611ae88585611903565b925050602061199785828601611919565b611b0281612015565b82525050565b611b0281612020565b611b0281612025565b611b02611b2682612025565b612025565b6000611b3682611ffd565b611b408185612007565b9350611b5081856020860161205a565b611b5981612086565b9093019392505050565b6000611b70602683612007565b7f436f6d703a3a64656c656761746542795369673a20696e76616c6964207369678152656e617475726560d01b602082015260400192915050565b6000611bb8602683612007565b7f436f6d703a3a64656c656761746542795369673a207369676e617475726520658152651e1c1a5c995960d21b602082015260400192915050565b6000611c00600283612010565b61190160f01b815260020192915050565b6000611c1e602783612007565b7f436f6d703a3a6765745072696f72566f7465733a206e6f742079657420646574815266195c9b5a5b995960ca1b602082015260400192915050565b6000611c67602283612007565b7f436f6d703a3a64656c656761746542795369673a20696e76616c6964206e6f6e815261636560f01b602082015260400192915050565b6000611cab603a83612007565b600080516020612121833981519152815279616e7366657220746f20746865207a65726f206164647265737360301b602082015260400192915050565b6000611cf5604383612010565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b6000611d60603c83612007565b60008051602061212183398151915281527b616e736665722066726f6d20746865207a65726f206164647265737360201b602082015260400192915050565b6000611dac603a83612010565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527974323536206e6f6e63652c75696e74323536206578706972792960301b6020820152603a0192915050565b611b0281612034565b611b028161203d565b611b028161204f565b611b0281612043565b6000611e2a82611bf3565b9150611e368285611b1a565b602082019150611e468284611b1a565b5060200192915050565b60006103bb82611ce8565b60006103bb82611d9f565b602081016103bb8284611af9565b602081016103bb8284611b08565b602081016103bb8284611b11565b60808101611e9e8287611b11565b611eab6020830186611af9565b611eb86040830185611b11565b611ec56060830184611b11565b95945050505050565b60808101611edc8287611b11565b611ee96020830186611b11565b611ef66040830185611b11565b611ec56060830184611af9565b60808101611f118287611b11565b611eab6020830186611e04565b6020808252810161056f8184611b2b565b602080825281016103bb81611b63565b602080825281016103bb81611bab565b602080825281016103bb81611c11565b602080825281016103bb81611c5a565b602080825281016103bb81611c9e565b602080825281016103bb81611d53565b602081016103bb8284611dfb565b60408101611fab8285611dfb565b61056f6020830184611e16565b602081016103bb8284611e04565b602081016103bb8284611e0d565b602081016103bb8284611e16565b60408101611ff08285611e0d565b61056f6020830184611e0d565b6000815192915050565b90815260200190565b919050565b60006103bb82612028565b151590565b90565b6001600160a01b031690565b63ffffffff1690565b60ff1690565b6001600160601b031690565b60006103bb82612043565b60005b8381101561207557808201518382015260200161205d565b838111156111505750506000910152565b601f01601f191690565b61209981612015565b81146105ba5760008061103a611610565b61209981612025565b61209981612034565b6120998161203d56fe436f6d703a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365436f6d703a3a617070726f76653a20616d6f756e7420657863656564732039362062697473436f6d703a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207472436f6d703a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473436f6d703a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473436f6d703a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773436f6d703a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773436f6d703a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e63658c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925436f6d703a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773", + "deployedBytecode": "0x608060405234801561001957600080610016611610565b50505b50600436106100fa5760003560e01c806306fdde0314610108578063095ea7b31461012657806318160ddd1461014657806320606b701461015b57806323b872dd14610163578063313ce56714610176578063587cde1e1461018b5780635c19a95c146101ab5780636fcfff45146101c057806370a08231146101e0578063782d6fe1146101f35780637ecebe001461021357806395d89b4114610226578063a9059cbb1461022e578063b4b5ea5714610241578063c3cda52014610254578063dd62ed3e14610267578063e7a324dc1461027a578063f1127ed814610282575b600080610105611610565b50505b6101106102a3565b60405161011d9190611f1e565b60405180910390f35b6101396101343660046119f7565b6102c5565b60405161011d9190611e74565b61014e6103c1565b60405161011d9190611e82565b61014e6103d0565b6101396101713660046119a1565b6103e7565b61017e610576565b60405161011d9190611fb8565b61019e61019936600461192f565b61057b565b60405161011d9190611e66565b6101be6101b936600461192f565b6105a8565b005b6101d36101ce36600461192f565b6105bd565b60405161011d9190611f8f565b61014e6101ee36600461192f565b6105e7565b6102066102013660046119f7565b610622565b60405161011d9190611fd4565b61014e61022136600461192f565b6108e9565b610110610904565b61013961023c3660046119f7565b610922565b61020661024f36600461192f565b610964565b6101be610262366004611a30565b610a00565b61014e61027536600461195e565b610c8e565b61014e610ce3565b610295610290366004611ac0565b610cef565b60405161011d929190611f9d565b60405160408082019052600881526710dbdb5c1bdd5b9960c21b602082015281565b6000806000198314156102db57506000196102fe565b6102fb836040516060810160405260258082526120fc6020830139610d48565b90505b806000805a61030b61167b565b6001600160a01b03166001600160a01b031681526020019081526020016000206001600160a01b03861660009081526020919091526040902060018161034f6116d0565b816001600160601b0302191690836001600160601b031602179061037161171c565b505050836001600160a01b03165a61038761167b565b6001600160a01b0316600080516020612230833981519152836040516103ad9190611fc6565b60405180910390a360019150505b92915050565b6a084595161401484a00000081565b6040516103dc90611e50565b604051809103902081565b6000805a6103f361167b565b6001600160a01b03861660009081526020819052909150604081206001600160a01b0383166000908152602091909152604090206000906104326116d0565b906101000a90046001600160601b031690506000610466856040516060810160405260258082526120fc6020830139610d48565b9050866001600160a01b0316836001600160a01b03161415801561049357506001600160601b0382811614155b1561055c5760006104bb838360405160608101604052603d8082526121f36020830139610d89565b6001600160a01b038916600090815260208190529091508190604090206001600160a01b0386166000908152602091909152604090206001816104fc6116d0565b816001600160601b0302191690836001600160601b031602179061051e61171c565b505050836001600160a01b0316886001600160a01b0316600080516020612230833981519152836040516105529190611fc6565b60405180910390a3505b610567878783610dda565b600193505050505b9392505050565b601281565b6002602052806000526040600020600091506105956116d0565b906101000a90046001600160a01b031681565b6105ba5a6105b461167b565b8261103f565b50565b6004602052806000526040600020600091506105d76116d0565b906101000a900463ffffffff1681565b6001600160a01b038116600090815260016020526040812060009061060a6116d0565b6001600160601b036101009290920a90041692915050565b60005a61062d61176a565b821061065d5760405162461bcd60e51b815260040161064b90611f4f565b6040518091039061065a611610565b50505b6001600160a01b03831660009081526004602052604081206000906106806116d0565b63ffffffff6101009290920a9004169050806106a05760009150506103bb565b6001600160a01b0384166000908152600360205283906040902063ffffffff6000198401166000908152602091909152604090206000906106df6116d0565b906101000a900463ffffffff1663ffffffff161161074c576001600160a01b038416600090815260036020526040902063ffffffff6000198301166000908152602091909152604090206004906107346116d0565b906101000a90046001600160601b03169150506103bb565b6001600160a01b038416600090815260036020528390604090206000808052602091909152604090206000906107806116d0565b906101000a900463ffffffff1663ffffffff1611156107a35760009150506103bb565b600060001982015b8163ffffffff168163ffffffff16111561089557600282820363ffffffff160481036107d56117b0565b6001600160a01b038816600090815260036020526040902063ffffffff831660009081526020919091526040902060405160408082019052908160008261081a6116d0565b63ffffffff6101009290920a90041681526020016004826108396116d0565b6001600160601b036101009290920a900416905250905086815163ffffffff161415610870578060200151955050505050506103bb565b86815163ffffffff1610156108875781935061088e565b6001820392505b50506107ab565b6001600160a01b038616600090815260036020526040902063ffffffff83166000908152602091909152604090206004906108ce6116d0565b906101000a90046001600160601b0316935050505092915050565b600560205280600052604060002090506109016116d0565b81565b6040516040808201905260048152630434f4d560e41b602082015281565b600080610945836040516060810160405260268082526121416020830139610d48565b905061095a5a61095361167b565b8583610dda565b5060019392505050565b6001600160a01b0381166000908152600460205280604081206000906109886116d0565b906101000a900463ffffffff16905060008163ffffffff16116109ac57600061056f565b6001600160a01b038316600090815260036020526040902063ffffffff6000198301166000908152602091909152604090206004906109e96116d0565b906101000a90046001600160601b03169392505050565b6000604051610a0e90611e50565b604051809103902060405160408082019052600881526710dbdb5c1bdd5b9960c21b602082015280519060200120610a44611156565b5a63996d79a5598160e01b8152602081600483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c528051925060005b6040811015610a9a57600082820152602001610a83565b505050604051602001610ab09493929190611ece565b6040516020818303038152906040528051906020012090506000604051610ad690611e5b565b6040518091039020888888604051602001610af49493929190611e90565b60405160208183030381529060405280519060200120905060008282604051602001610b21929190611e1f565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610b5e9493929190611f03565b6020604051602081039080840390855a610b766117c7565b5050505050158015610b95573d6000803e3d6000610b92611610565b50505b5050506020604051035190506001600160a01b038116610bd95760405162461bcd60e51b8152600401610bc790611f2f565b60405180910390610bd6611610565b50505b6001600160a01b0381166000908152600560205260409020600081610bfc6116d0565b91600183019150610c0b61171c565b50508914610c3d5760405162461bcd60e51b8152600401610c2b90611f5f565b60405180910390610c3a611610565b50505b875a610c47611877565b1115610c775760405162461bcd60e51b8152600401610c6590611f3f565b60405180910390610c74611610565b50505b610c81818b61103f565b505050505b505050505050565b6001600160a01b03821660009081526020819052604081206001600160a01b038316600090815260209190915260409020600090610cca6116d0565b6001600160601b036101009290920a9004169392505050565b6040516103dc90611e5b565b600360205281600052604060002060205280600052604060002091506000905081610d186116d0565b63ffffffff6101009290920a90041690600481610d336116d0565b906101000a90046001600160601b0316905082565b600081600160601b8410610d815760405162461bcd60e51b8152600401610d6f9190611f1e565b60405180910390610d7e611610565b50505b509192915050565b6000836001600160601b0316836001600160601b031611158290610dd25760405162461bcd60e51b8152600401610dc09190611f1e565b60405180910390610dcf611610565b50505b505050900390565b6001600160a01b038316610e125760405162461bcd60e51b8152600401610e0090611f7f565b60405180910390610e0f611610565b50505b6001600160a01b038216610e4a5760405162461bcd60e51b8152600401610e3890611f6f565b60405180910390610e47611610565b50505b6001600160a01b03831660009081526001602052610e9e9060409020600090610e716116d0565b906101000a90046001600160601b0316826040516060810160405260368082526120c66020830139610d89565b6001600160a01b0384166000908152600160205260409020600181610ec16116d0565b816001600160601b0302191690836001600160601b0316021790610ee361171c565b5050506001600160a01b03821660009081526001602052610f3a9060409020600090610f0d6116d0565b906101000a90046001600160601b0316826040516060810160405260308082526121c36020830139611168565b6001600160a01b0383166000908152600160205260409020600181610f5d6116d0565b816001600160601b0302191690836001600160601b0316021790610f7f61171c565b505050816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610fc59190611fc6565b60405180910390a36001600160a01b0383166000908152600260205261103a9060409020600090610ff46116d0565b6001600160a01b03858116600090815260026020526101009390930a9091041690604090206000906110246116d0565b906101000a90046001600160a01b0316836111b6565b505050565b6001600160a01b03821660009081526002602052604081206000906110626116d0565b6001600160a01b03858116600090815260016020526101009390930a909104169150604081206000906110936116d0565b906101000a90046001600160601b031690508260026000866001600160a01b03166001600160a01b031681526020019081526020016000206001816110d66116d0565b816001600160a01b0302191690836001600160a01b03160217906110f861171c565b505050826001600160a01b0316826001600160a01b0316856001600160a01b03167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a46111508284836111b6565b50505050565b6000805a6111626118bd565b91505090565b6000838301826001600160601b0380871690831610156111ad5760405162461bcd60e51b815260040161119b9190611f1e565b604051809103906111aa611610565b50505b50949350505050565b816001600160a01b0316836001600160a01b0316141580156111e157506000816001600160601b0316115b1561103a576001600160a01b038316156112c2576001600160a01b03831660009081526004602052604081206000906112186116d0565b906101000a900463ffffffff1690506000808263ffffffff161161123d57600061128b565b6001600160a01b038516600090815260036020526040902063ffffffff60001984011660009081526020919091526040902060049061127a6116d0565b906101000a90046001600160601b03165b905060006112b0828560405160608101604052602880825261219b6020830139610d89565b90506112be86848484611396565b5050505b6001600160a01b0382161561103a576001600160a01b03821660009081526004602052604081206000906112f46116d0565b906101000a900463ffffffff1690506000808263ffffffff1611611319576000611367565b6001600160a01b038416600090815260036020526040902063ffffffff6000198401166000908152602091909152604090206004906113566116d0565b906101000a90046001600160601b03165b9050600061138c82856040516060810160405260278082526122506020830139611168565b9050610c86858484845b60006113c05a6113a461176a565b60405160608101604052603480825261216760208301396115e9565b905060008463ffffffff1611801561142d57506001600160a01b0385166000908152600360205263ffffffff8216906040902063ffffffff6000198701166000908152602091909152604090206000906114186116d0565b906101000a900463ffffffff1663ffffffff16145b1561149e576001600160a01b0385166000908152600360205282906040902063ffffffff600019870116600090815260209190915260409020600160201b816114746116d0565b816001600160601b0302191690836001600160601b031602179061149661171c565b50505061159f565b6040516040808201815263ffffffff831682526001600160601b0384166020808401919091526001600160a01b038816600090815260039091522063ffffffff86166000908152602091909152604090208151816001816114fd6116d0565b8163ffffffff021916908363ffffffff1602179061151961171c565b505050602082015181600160201b816115306116d0565b816001600160601b0302191690836001600160601b031602179061155261171c565b5050506001600160a01b03871660009081526004602052600187019250604091502060018161157f6116d0565b8163ffffffff021916908363ffffffff1602179061159b61171c565b5050505b846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72484846040516115da929190611fe2565b60405180910390a25050505050565b600081600160201b8410610d815760405162461bcd60e51b8152600401610d6f9190611f1e565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561164857808601518282016040015260200161162d565b506020828760640184336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c52505050565b6373509064598160e01b8152602081600483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c528051935060005b604081101561103a576000828201526020016116b9565b6303daa959598160e01b8152836004820152602081602483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c52805160008252935060206116b9565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c526000815260206116b9565b635a98c361598160e01b8152602081600483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c52805160008252935060206116b9565b604051604080820190526000808252602082015290565b638540661f598160e01b8152836004820152846024820152606060448201528660648201526084810160005b8881101561180b5780880151828201526020016117f3565b506060828960a40184336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c52815160408301513d6000853e8b8b82606087013350600060045af15059845b8181101561186c5760008152602001611858565b50919b505050505050565b63bdbf8c36598160e01b8152602081600483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c52805160008252935060206116b9565b6390580256598160e01b8152602081600483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c52805160008252935060206116b9565b80356103bb81612090565b80356103bb816120aa565b80356103bb816120b3565b80356103bb816120bc565b60006020828403121561194a57600080611947611610565b50505b60006119568484611903565b949350505050565b6000806040838503121561197a57600080611977611610565b50505b60006119868585611903565b925050602061199785828601611903565b9150509250929050565b6000806000606084860312156119bf576000806119bc611610565b50505b60006119cb8686611903565b93505060206119dc86828701611903565b92505060406119ed8682870161190e565b9150509250925092565b60008060408385031215611a1357600080611a10611610565b50505b6000611a1f8585611903565b92505060206119978582860161190e565b60008060008060008060c08789031215611a5257600080611a4f611610565b50505b6000611a5e8989611903565b9650506020611a6f89828a0161190e565b9550506040611a8089828a0161190e565b9450506060611a9189828a01611924565b9350506080611aa289828a0161190e565b92505060a0611ab389828a0161190e565b9150509295509295509295565b60008060408385031215611adc57600080611ad9611610565b50505b6000611ae88585611903565b925050602061199785828601611919565b611b0281612015565b82525050565b611b0281612020565b611b0281612025565b611b02611b2682612025565b612025565b6000611b3682611ffd565b611b408185612007565b9350611b5081856020860161205a565b611b5981612086565b9093019392505050565b6000611b70602683612007565b7f436f6d703a3a64656c656761746542795369673a20696e76616c6964207369678152656e617475726560d01b602082015260400192915050565b6000611bb8602683612007565b7f436f6d703a3a64656c656761746542795369673a207369676e617475726520658152651e1c1a5c995960d21b602082015260400192915050565b6000611c00600283612010565b61190160f01b815260020192915050565b6000611c1e602783612007565b7f436f6d703a3a6765745072696f72566f7465733a206e6f742079657420646574815266195c9b5a5b995960ca1b602082015260400192915050565b6000611c67602283612007565b7f436f6d703a3a64656c656761746542795369673a20696e76616c6964206e6f6e815261636560f01b602082015260400192915050565b6000611cab603a83612007565b600080516020612121833981519152815279616e7366657220746f20746865207a65726f206164647265737360301b602082015260400192915050565b6000611cf5604383612010565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b6000611d60603c83612007565b60008051602061212183398151915281527b616e736665722066726f6d20746865207a65726f206164647265737360201b602082015260400192915050565b6000611dac603a83612010565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527974323536206e6f6e63652c75696e74323536206578706972792960301b6020820152603a0192915050565b611b0281612034565b611b028161203d565b611b028161204f565b611b0281612043565b6000611e2a82611bf3565b9150611e368285611b1a565b602082019150611e468284611b1a565b5060200192915050565b60006103bb82611ce8565b60006103bb82611d9f565b602081016103bb8284611af9565b602081016103bb8284611b08565b602081016103bb8284611b11565b60808101611e9e8287611b11565b611eab6020830186611af9565b611eb86040830185611b11565b611ec56060830184611b11565b95945050505050565b60808101611edc8287611b11565b611ee96020830186611b11565b611ef66040830185611b11565b611ec56060830184611af9565b60808101611f118287611b11565b611eab6020830186611e04565b6020808252810161056f8184611b2b565b602080825281016103bb81611b63565b602080825281016103bb81611bab565b602080825281016103bb81611c11565b602080825281016103bb81611c5a565b602080825281016103bb81611c9e565b602080825281016103bb81611d53565b602081016103bb8284611dfb565b60408101611fab8285611dfb565b61056f6020830184611e16565b602081016103bb8284611e04565b602081016103bb8284611e0d565b602081016103bb8284611e16565b60408101611ff08285611e0d565b61056f6020830184611e0d565b6000815192915050565b90815260200190565b919050565b60006103bb82612028565b151590565b90565b6001600160a01b031690565b63ffffffff1690565b60ff1690565b6001600160601b031690565b60006103bb82612043565b60005b8381101561207557808201518382015260200161205d565b838111156111505750506000910152565b601f01601f191690565b61209981612015565b81146105ba5760008061103a611610565b61209981612025565b61209981612034565b6120998161203d56fe436f6d703a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365436f6d703a3a617070726f76653a20616d6f756e7420657863656564732039362062697473436f6d703a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207472436f6d703a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473436f6d703a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473436f6d703a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773436f6d703a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773436f6d703a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e63658c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925436f6d703a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773", + "sourceMap": "60:12535:0:-;;;2544:149;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;2544:149:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2590:17:0;;;;;;:8;:17;;456:11;;2590:17;;;:39;;;;:::i;:::-;;-1:-1:-1;;;;;2590:39:0;;;;;-1:-1:-1;;;;;2590:39:0;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;2644:42:0;;2661:1;2644:42;456:11;2644:42;;;;;;;;;;;;;;;2544:149;60:12535;;;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;242:1;231:9;227:17;295:4;284:9;277:23;362:6;355:4;344:9;340:20;333:36;424:1;407:143;436:6;431:3;428:15;407:143;;;536:3;528:6;524:16;518:23;486:30;;;505:4;486:30;479:63;462:4;453:14;407:143;;;411:16;720:4;709:9;700:6;694:4;690:17;679:9;674:51;;;;;;;;;;;;;;;;;;;;;;;;;;0:821;;;60:12535:0:o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;184:2;180:1;169:9;165:17;158:29;252:2;241:9;237:2;226:9;221:34;;;;;;;;;;;;;;;;;;;;;;;;;;271:9;265:16;259:22;;521:1;504:100;533:4;528:3;525:13;504:100;;;598:1;577:19;;;570:30;557:4;548:14;504:100;;;508:16;0:607;;60:12535:0:o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;184:2;180:1;169:9;165:17;158:29;219:2;212:4;201:9;197:20;190:32;284:1;273:9;269:2;258:9;253:33;;;;;;;;;;;;;;;;;;;;;;;;;;530:1;579:30;;566:4;513:100;;5:134;;89:6;83:13;74:22;;101:33;128:5;101:33;;;68:71;;;;;146:263;;261:2;249:9;240:7;236:23;232:32;229:2;;;277:1;274;267:12;;:::i;:::-;;;229:2;312:1;329:64;385:7;365:9;329:64;;;319:74;223:186;-1:-1;;;;223:186;416:113;499:24;517:5;499:24;;;494:3;487:37;481:48;;;536:213;654:2;639:18;;668:71;643:9;712:6;668:71;;756:91;;-1:-1;;;;;916:54;;818:24;899:76;982:72;1044:5;1027:27;1061:117;1130:24;1148:5;1130:24;;;1123:5;1120:35;1110:2;;1169:1;1166;1159:12;;:::i;1110:2::-;1104:74;;;60:12535:0;;;;;;", + "deployedSourceMap": "60:12535:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;60:12535:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;129:40;;;:::i;:::-;;;;;;;;;;;;;;;;3591:407;;;;;;;;;:::i;:::-;;;;;;;;421:46;;;:::i;:::-;;;;;;;;1327:122;;;:::i;5091:658::-;;;;;;;;;:::i;325:35::-;;;:::i;:::-;;;;;;;;792:45;;;;;;;;;:::i;:::-;;;;;;;;5891:100;;;;;;;;;:::i;:::-;;1208:49;;;;;;;;;:::i;:::-;;;;;;;;4194:106;;;;;;;;;:::i;8029:1186::-;;;;;;;;;:::i;:::-;;;;;;;;1735:39;;;;;;;;;:::i;227:38::-;;;:::i;4556:234::-;;;;;;;;;:::i;7388:219::-;;;;;;;;;:::i;6414:780::-;;;;;;;;;:::i;2989:134::-;;;;;;;;;:::i;1540:117::-;;;:::i;1072:70::-;;;;;;;;;:::i;:::-;;;;;;;;;129:40;;;;;;;;;;;;-1:-1:-1;;;129:40:0;;;;;:::o;3591:407::-;3659:4;3675:13;-1:-1:-1;;3702:9:0;:21;3698:169;;;-1:-1:-1;;;3698:169:0;;;3798:58;3805:9;3798:58;;;;;;;;;;;;;;;;:6;:58::i;:::-;3789:67;;3698:169;3911:6;3877:10;:22;3888:10;;;:::i;:::-;-1:-1:-1;;;;;3877:22:0;-1:-1:-1;;;;;3877:22:0;;;;;;;;;;;;-1:-1:-1;;;;;3877:31:0;;;;;;;;;;;;;;:40;;;;:::i;:::-;;-1:-1:-1;;;;;3877:40:0;;;;;-1:-1:-1;;;;;3877:40:0;;;;;;:::i;:::-;;;;3954:7;-1:-1:-1;;;;;3933:37:0;3942:10;;;:::i;:::-;-1:-1:-1;;;;;3933:37:0;-1:-1:-1;;;;;;;;;;;3963:6:0;3933:37;;;;;;;;;;;;;;;3987:4;3980:11;;;3591:407;;;;;:::o;421:46::-;456:11;421:46;:::o;1327:122::-;1369:80;;;;;;;;;;;;;;1327:122;:::o;5091:658::-;5173:4;5189:15;5207:10;;;:::i;:::-;-1:-1:-1;;;;;5253:15:0;;5227:23;5253:15;;;;;;;5189:28;;-1:-1:-1;5253:15:0;5227:23;5253:15;-1:-1:-1;;;;;5253:24:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;5253:24:0;5227:50;;5287:13;5303:58;5310:9;5303:58;;;;;;;;;;;;;;;;:6;:58::i;:::-;5287:74;;5387:3;-1:-1:-1;;;;;5376:14:0;:7;-1:-1:-1;;;;;5376:14:0;;;:48;;;;-1:-1:-1;;;;;;5394:30:0;;;;;5376:48;5372:306;;;5440:19;5462:96;5468:16;5486:6;5462:96;;;;;;;;;;;;;;;;:5;:96::i;:::-;-1:-1:-1;;;;;5572:15:0;;:10;:15;;;;;;;5440:118;;-1:-1:-1;5440:118:0;;5572:15;;;-1:-1:-1;;;;;5572:24:0;;;;;;;;;;;;;;:39;;;;:::i;:::-;;-1:-1:-1;;;;;5572:39:0;;;;;-1:-1:-1;;;;;5572:39:0;;;;;;:::i;:::-;;;;5645:7;-1:-1:-1;;;;;5631:36:0;5640:3;-1:-1:-1;;;;;5631:36:0;-1:-1:-1;;;;;;;;;;;5654:12:0;5631:36;;;;;;;;;;;;;;;5372:306;;5688:33;5704:3;5709;5714:6;5688:15;:33::i;:::-;5738:4;5731:11;;;;;5091:658;;;;;;:::o;325:35::-;358:2;325:35;:::o;792:45::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;792:45:0;;:::o;5891:100::-;5952:32;5962:10;;;:::i;:::-;5974:9;5952;:32::i;:::-;5891:100;:::o;1208:49::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;4194:106::-;-1:-1:-1;;;;;4276:17:0;;4253:4;4276:17;;;:8;:17;;;4253:4;4276:17;;;;;:::i;:::-;-1:-1:-1;;;;;4276:17:0;;;;;;;;;4194:106;-1:-1:-1;;4194:106:0:o;8029:1186::-;8108:6;8148:12;;;:::i;:::-;8134:11;:26;8126:78;;;;-1:-1:-1;;;8126:78:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;8237:23:0;;8215:19;8237:23;;;:14;:23;;;8215:19;8237:23;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;8274:17:0;8270:56;;8314:1;8307:8;;;;;8270:56;-1:-1:-1;;;;;8383:20:0;;;;;;:11;:20;;8435:11;;8383:20;;;:38;-1:-1:-1;;8404:16:0;;8383:38;;;;;;;;;;;;;:48;;;;:::i;:::-;;;;;;;;:63;;;8379:145;;-1:-1:-1;;;;;8469:20:0;;;;;;:11;:20;;;;;:38;-1:-1:-1;;8490:16:0;;8469:38;;;;;;;;;;;;;:44;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;8469:44:0;8462:51;;;;;8379:145;-1:-1:-1;;;;;8582:20:0;;;;;;:11;:20;;8618:11;;8582:20;;;:23;;;;;;;;;;;;:33;;;;:::i;:::-;;;;;;;;:47;;;8578:86;;;8652:1;8645:8;;;;;8578:86;8674:12;-1:-1:-1;;8715:16:0;;8741:418;8756:5;8748:13;;:5;:13;;;8741:418;;;8819:1;8802:13;;;8801:19;;;8793:27;;8861:20;;:::i;:::-;-1:-1:-1;;;;;8884:20:0;;;;;;:11;:20;;;;;:28;;;;;;;;;;;;;;;8861:51;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8861:51:0;;;;;;;;;;-1:-1:-1;8861:51:0;-1:-1:-1;8946:11:0;8861:51;8930:12;:27;;;8926:223;;;8984:2;:8;;;8977:15;;;;;;;;;8926:223;9032:11;9017:2;:12;:26;;;9013:136;;;9071:6;9063:14;;9013:136;;;9133:1;9124:6;:10;9116:18;;9013:136;8741:418;;;;;-1:-1:-1;;;;;9175:20:0;;;;;;:11;:20;;;;;:27;;;;;;;;;;;;;;;:33;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;9175:33:0;9168:40;;;;;8029:1186;;;;:::o;1735:39::-;;;;;;;;;;;-1:-1:-1;1735:39:0;;:::i;:::-;;:::o;227:38::-;;;;;;;;;;;;-1:-1:-1;;;227:38:0;;;;;:::o;4556:234::-;4621:4;4637:13;4653:59;4660:9;4653:59;;;;;;;;;;;;;;;;:6;:59::i;:::-;4637:75;;4722:40;4738:10;;;:::i;:::-;4750:3;4755:6;4722:15;:40::i;:::-;-1:-1:-1;4779:4:0;;4556:234;-1:-1:-1;;;4556:234:0:o;7388:219::-;-1:-1:-1;;;;;7493:23:0;;7453:6;7493:23;;;:14;:23;;7453:6;7493:23;7453:6;7493:23;;;;;:::i;:::-;;;;;;;;7471:45;;7548:1;7533:12;:16;;;:67;;7599:1;7533:67;;;-1:-1:-1;;;;;7552:20:0;;;;;;:11;:20;;;;;:38;-1:-1:-1;;7573:16:0;;7552:38;;;;;;;;;;;;;:44;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;7552:44:0;7526:74;7388:219;-1:-1:-1;;;7388:219:0:o;6414:780::-;6529:23;1369:80;;;;;;;;;;;;;;6609:4;;;;;;;;;;;-1:-1:-1;;;6609:4:0;;;;;6593:22;;;;;6617:12;:10;:12::i;:::-;6639:4;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;222:2;211:9;208:1;197:9;192:33;;;;;;;;;;;;;;;;;;;;;;;;;;241:9;235:16;229:22;;491:1;474:100;503:4;498:3;495:13;474:100;;;568:1;547:19;;;540:30;527:4;518:14;474:100;;;478:16;0:577;;6565:80:0;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6565:80:0;;;6555:91;;;;;;6529:117;;6656:18;1586:71;;;;;;;;;;;;;;6719:9;6730:5;6737:6;6687:57;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6687:57:0;;;6677:68;;;;;;6656:89;;6755:14;6811:15;6828:10;6782:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6782:57:0;;;6772:68;;;;;;6755:85;;6850:17;6870:26;6880:6;6888:1;6891;6894;6870:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;;:::i;:::-;;;5:2;6870:26:0;;;;;;;;6850:46;-1:-1:-1;;;;;;6914:23:0;;6906:74;;;;-1:-1:-1;;;6906:74:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;7007:17:0;;;;;;:6;:17;;;;;;:19;;;:::i;:::-;;;;;;-1:-1:-1;7007:19:0;;:::i;:::-;;;6998:5;:28;6990:75;;;;-1:-1:-1;;;6990:75:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;7090:6;7083:3;;;:::i;:::-;:13;;7075:64;;;;-1:-1:-1;;;7075:64:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;7156:31;7166:9;7177;7156;:31::i;:::-;7149:38;;;;6414:780;;;;;;;:::o;2989:134::-;-1:-1:-1;;;;;3088:19:0;;3065:4;3088:19;;;;;;;;3065:4;3088:19;-1:-1:-1;;;;;3088:28:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3088:28:0;;;;;;;;;2989:134;-1:-1:-1;;;2989:134:0:o;1540:117::-;1586:71;;;;;;1072:70;;;;;;;;;;;;;;;;;;;-1:-1:-1;1072:70:0;;-1:-1:-1;1072:70:0;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1072:70:0;;;;:::o;11922:158::-;11997:6;12034:12;-1:-1:-1;;;12023:9:0;;12015:32;;;;-1:-1:-1;;;12015:32:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;12071:1:0;;11922:158;-1:-1:-1;;11922:158:0:o;12276:162::-;12362:6;12393:1;-1:-1:-1;;;;;12388:6:0;:1;-1:-1:-1;;;;;12388:6:0;;;12396:12;12380:29;;;;;-1:-1:-1;;;12380:29:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;12426:5:0;;;12276:162::o;9594:605::-;-1:-1:-1;;;;;9687:17:0;;9679:90;;;;-1:-1:-1;;;9679:90:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;9787:17:0;;9779:88;;;;-1:-1:-1;;;9779:88:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;9900:13:0;;;;;;:8;:13;;9894:86;;9900:13;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;9900:13:0;9915:6;9894:86;;;;;;;;;;;;;;;;:5;:86::i;:::-;-1:-1:-1;;;;;9878:13:0;;;;;;:8;:13;;;;;:102;;;;:::i;:::-;;-1:-1:-1;;;;;9878:102:0;;;;;-1:-1:-1;;;;;9878:102:0;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;10012:13:0;;;;;;:8;:13;;10006:80;;10012:13;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;10012:13:0;10027:6;10006:80;;;;;;;;;;;;;;;;:5;:80::i;:::-;-1:-1:-1;;;;;9990:13:0;;;;;;:8;:13;;;;;:96;;;;:::i;:::-;;-1:-1:-1;;;;;9990:96:0;;;;;-1:-1:-1;;;;;9990:96:0;;;;;;:::i;:::-;;;;10115:3;-1:-1:-1;;;;;10101:26:0;10110:3;-1:-1:-1;;;;;10101:26:0;;10120:6;10101:26;;;;;;;;;;;;;;;-1:-1:-1;;;;;10153:14:0;;;;;;:9;:14;;10138:54;;10153:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;10169:14:0;;;;;;;:9;:14;;10153;;;;;;;;;;10169;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;10169:14:0;10185:6;10138:14;:54::i;:::-;9594:605;;;:::o;9221:367::-;-1:-1:-1;;;;;9323:20:0;;9297:23;9323:20;;;:9;:20;;;9297:23;9323:20;;;;;:::i;:::-;-1:-1:-1;;;;;9379:19:0;;;9353:23;9379:19;;;:8;:19;;9323:20;;;;;;;;;;-1:-1:-1;9379:19:0;9353:23;9379:19;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;9379:19:0;9353:45;;9431:9;9408;:20;9418:9;-1:-1:-1;;;;;9408:20:0;-1:-1:-1;;;;;9408:20:0;;;;;;;;;;;;:32;;;;:::i;:::-;;-1:-1:-1;;;;;9408:32:0;;;;;-1:-1:-1;;;;;9408:32:0;;;;;;:::i;:::-;;;;9500:9;-1:-1:-1;;;;;9456:54:0;9483:15;-1:-1:-1;;;;;9456:54:0;9472:9;-1:-1:-1;;;;;9456:54:0;;;;;;;;;;;9521:60;9536:15;9553:9;9564:16;9521:14;:60::i;:::-;9221:367;;;;:::o;12444:149::-;12489:4;12505:15;12552:9;;;:::i;:::-;12541:20;-1:-1:-1;;12444:149:0;:::o;12086:184::-;12172:6;12201:5;;;12232:12;-1:-1:-1;;;;;12224:6:0;;;;;;;;12216:29;;;;-1:-1:-1;;;12216:29:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;12262:1:0;12086:184;-1:-1:-1;;;;12086:184:0:o;10205:923::-;10309:6;-1:-1:-1;;;;;10299:16:0;:6;-1:-1:-1;;;;;10299:16:0;;;:30;;;;;10328:1;10319:6;-1:-1:-1;;;;;10319:10:0;;10299:30;10295:827;;;-1:-1:-1;;;;;10349:20:0;;;10345:377;;-1:-1:-1;;;;;10408:22:0;;10389:16;10408:22;;;:14;:22;;;10389:16;10408:22;;;;;:::i;:::-;;;;;;;;10389:41;;10448:16;10479:1;10467:9;:13;;;:60;;10526:1;10467:60;;;-1:-1:-1;;;;;10483:19:0;;;;;;:11;:19;;;;;:34;-1:-1:-1;;10503:13:0;;10483:34;;;;;;;;;;;;;:40;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;10483:40:0;10467:60;10448:79;;10545:16;10564:68;10570:9;10581:6;10564:68;;;;;;;;;;;;;;;;:5;:68::i;:::-;10545:87;;10650:57;10667:6;10675:9;10686;10697;10650:16;:57::i;:::-;10345:377;;;;-1:-1:-1;;;;;10740:20:0;;;10736:376;;-1:-1:-1;;;;;10799:22:0;;10780:16;10799:22;;;:14;:22;;;10780:16;10799:22;;;;;:::i;:::-;;;;;;;;10780:41;;10839:16;10870:1;10858:9;:13;;;:60;;10917:1;10858:60;;;-1:-1:-1;;;;;10874:19:0;;;;;;:11;:19;;;;;:34;-1:-1:-1;;10894:13:0;;10874:34;;;;;;;;;;;;;:40;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;10874:40:0;10858:60;10839:79;;10936:16;10955:67;10961:9;10972:6;10955:67;;;;;;;;;;;;;;;;:5;:67::i;:::-;10936:86;;11040:57;11057:6;11065:9;11076;11087;11134:618;11251:18;11272:76;11279:12;;;:::i;:::-;11272:76;;;;;;;;;;;;;;;;:6;:76::i;:::-;11251:97;;11376:1;11361:12;:16;;;:85;;;;-1:-1:-1;;;;;;11381:22:0;;;;;;:11;:22;;:65;;;;:22;;;:40;-1:-1:-1;;11404:16:0;;11381:40;;;;;;;;;;;;;:50;;;;:::i;:::-;;;;;;;;:65;;;11361:85;11357:324;;;-1:-1:-1;;;;;11460:22:0;;;;;;:11;:22;;11509:8;;11460:22;;;:40;-1:-1:-1;;11483:16:0;;11460:40;;;;;;;;;;;;;-1:-1:-1;;;11460:46:0;:57;;:::i;:::-;;-1:-1:-1;;;;;11460:57:0;;;;;-1:-1:-1;;;;;11460:57:0;;;;;;:::i;:::-;;;;11357:324;;;11583:33;;;;;;;;;;;;;-1:-1:-1;;;;;11583:33:0;;;;;;;;;;-1:-1:-1;;;;;11544:22:0;;-1:-1:-1;11544:22:0;;;:11;:22;;;;:36;;;;;;;;;;;;;;;:72;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;11544:72:0;;;:::i;:::-;;-1:-1:-1;;;;;11544:72:0;;;;;-1:-1:-1;;;;;11544:72:0;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;11628:25:0;;;;;;:14;:25;;11671:1;11656:16;;;-1:-1:-1;11628:25:0;;-1:-1:-1;11628:25:0;:44;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;11357:324;11715:9;-1:-1:-1;;;;;11694:51:0;;11726:8;11736;11694:51;;;;;;;;;;;;;;;;11134:618;;;;;:::o;11758:158::-;11833:6;11870:12;-1:-1:-1;;;11859:9:0;;11851:32;;;;-1:-1:-1;;;11851:32:0;;;;;;;;;60:12535;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;242:1;231:9;227:17;295:4;284:9;277:23;362:6;355:4;344:9;340:20;333:36;424:1;407:143;436:6;431:3;428:15;407:143;;;536:3;528:6;524:16;518:23;486:30;;;505:4;486:30;479:63;462:4;453:14;407:143;;;411:16;720:4;709:9;700:6;694:4;690:17;679:9;674:51;;;;;;;;;;;;;;;;;;;;;;;;;;0:821;;;60:12535:0:o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;222:2;211:9;208:1;197:9;192:33;;;;;;;;;;;;;;;;;;;;;;;;;;241:9;235:16;229:22;;491:1;474:100;503:4;498:3;495:13;474:100;;;568:1;547:19;;;540:30;527:4;518:14;474:100;;60:12535:0;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;184:2;180:1;169:9;165:17;158:29;252:2;241:9;237:2;226:9;221:34;;;;;;;;;;;;;;;;;;;;;;;;;;271:9;265:16;521:1;570:30;;259:22;-1:-1;557:4;504:100;;60:12535:0;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;184:2;180:1;169:9;165:17;158:29;219:2;212:4;201:9;197:20;190:32;284:1;273:9;269:2;258:9;253:33;;;;;;;;;;;;;;;;;;;;;;;;;;530:1;579:30;;566:4;513:100;;60:12535:0;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;222:2;211:9;208:1;197:9;192:33;;;;;;;;;;;;;;;;;;;;;;;;;;241:9;235:16;491:1;540:30;;229:22;-1:-1;527:4;474:100;;60:12535:0;;;;;;;;;;;;;;;;;;:::o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;208:6;201:4;190:9;186:20;179:36;267:4;260;249:9;245:20;238:34;338:4;331;320:9;316:20;309:34;416:10;409:4;398:9;394:20;387:40;508:4;497:9;493:20;533:1;516:135;545:10;540:3;537:19;516:135;;;641:3;629:10;625:20;619:27;595:22;;;588:59;575:4;566:14;516:135;;;520:16;1050:4;1039:9;1026:10;1020:4;1016:21;1005:9;1000:55;;;;;;;;;;;;;;;;;;;;;;;;;;1100:9;1094:16;1209:4;1198:9;1194:20;1188:27;1450:16;1447:1;1436:9;1421:46;1535:9;1524;1497:25;1490:4;1479:9;1475:20;1470:75;;;;;;;1612:7;1639:9;1622:101;1659:10;1654:3;1651:19;1622:101;;;1714:4;1702:17;;1689:4;1680:14;1622:101;;;-1:-1;1881:10;;-1:-1;;;;;;60:12535:0:o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;222:2;211:9;208:1;197:9;192:33;;;;;;;;;;;;;;;;;;;;;;;;;;241:9;235:16;491:1;540:30;;229:22;-1:-1;527:4;474:100;;60:12535:0;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;222:2;211:9;208:1;197:9;192:33;;;;;;;;;;;;;;;;;;;;;;;;;;241:9;235:16;491:1;540:30;;229:22;-1:-1;527:4;474:100;;5:130;72:20;;97:33;72:20;97:33;;142:130;209:20;;234:33;209:20;234:33;;416:128;482:20;;507:32;482:20;507:32;;551:126;616:20;;641:31;616:20;641:31;;684:241;;788:2;776:9;767:7;763:23;759:32;756:2;;;804:1;801;794:12;;:::i;:::-;;;756:2;839:1;856:53;901:7;881:9;856:53;;;846:63;750:175;-1:-1;;;;750:175;932:366;;;1053:2;1041:9;1032:7;1028:23;1024:32;1021:2;;;1069:1;1066;1059:12;;:::i;:::-;;;1021:2;1104:1;1121:53;1166:7;1146:9;1121:53;;;1111:63;;1083:97;1211:2;1229:53;1274:7;1265:6;1254:9;1250:22;1229:53;;;1219:63;;1190:98;1015:283;;;;;;1305:491;;;;1443:2;1431:9;1422:7;1418:23;1414:32;1411:2;;;1459:1;1456;1449:12;;:::i;:::-;;;1411:2;1494:1;1511:53;1556:7;1536:9;1511:53;;;1501:63;;1473:97;1601:2;1619:53;1664:7;1655:6;1644:9;1640:22;1619:53;;;1609:63;;1580:98;1709:2;1727:53;1772:7;1763:6;1752:9;1748:22;1727:53;;;1717:63;;1688:98;1405:391;;;;;;1803:366;;;1924:2;1912:9;1903:7;1899:23;1895:32;1892:2;;;1940:1;1937;1930:12;;:::i;:::-;;;1892:2;1975:1;1992:53;2037:7;2017:9;1992:53;;;1982:63;;1954:97;2082:2;2100:53;2145:7;2136:6;2125:9;2121:22;2100:53;;2176:865;;;;;;;2363:3;2351:9;2342:7;2338:23;2334:33;2331:2;;;2380:1;2377;2370:12;;:::i;:::-;;;2331:2;2415:1;2432:53;2477:7;2457:9;2432:53;;;2422:63;;2394:97;2522:2;2540:53;2585:7;2576:6;2565:9;2561:22;2540:53;;;2530:63;;2501:98;2630:2;2648:53;2693:7;2684:6;2673:9;2669:22;2648:53;;;2638:63;;2609:98;2738:2;2756:51;2799:7;2790:6;2779:9;2775:22;2756:51;;;2746:61;;2717:96;2844:3;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;;;2853:63;;2823:99;2953:3;2972:53;3017:7;3008:6;2997:9;2993:22;2972:53;;;2962:63;;2932:99;2325:716;;;;;;;;;3048:364;;;3168:2;3156:9;3147:7;3143:23;3139:32;3136:2;;;3184:1;3181;3174:12;;:::i;:::-;;;3136:2;3219:1;3236:53;3281:7;3261:9;3236:53;;;3226:63;;3198:97;3326:2;3344:52;3388:7;3379:6;3368:9;3364:22;3344:52;;3419:113;3502:24;3520:5;3502:24;;;3497:3;3490:37;3484:48;;;3539:104;3616:21;3631:5;3616:21;;3650:113;3733:24;3751:5;3733:24;;3770:152;3871:45;3891:24;3909:5;3891:24;;;3871:45;;3929:347;;4041:39;4074:5;4041:39;;;4092:71;4156:6;4151:3;4092:71;;;4085:78;;4168:52;4213:6;4208:3;4201:4;4194:5;4190:16;4168:52;;;4241:29;4263:6;4241:29;;;4232:39;;;;4021:255;-1:-1;;;4021:255;4630:375;;4790:67;4854:2;4849:3;4790:67;;;4890:34;4870:55;;-1:-1;;;4954:2;4945:12;;4938:30;4996:2;4987:12;;4776:229;-1:-1;;4776:229;5014:375;;5174:67;5238:2;5233:3;5174:67;;;5274:34;5254:55;;-1:-1;;;5338:2;5329:12;;5322:30;5380:2;5371:12;;5160:229;-1:-1;;5160:229;5398:398;;5576:84;5658:1;5653:3;5576:84;;;-1:-1;;;5673:87;;5788:1;5779:11;;5562:234;-1:-1;;5562:234;5805:376;;5965:67;6029:2;6024:3;5965:67;;;6065:34;6045:55;;-1:-1;;;6129:2;6120:12;;6113:31;6172:2;6163:12;;5951:230;-1:-1;;5951:230;6190:371;;6350:67;6414:2;6409:3;6350:67;;;6450:34;6430:55;;-1:-1;;;6514:2;6505:12;;6498:26;6552:2;6543:12;;6336:225;-1:-1;;6336:225;6570:395;;6730:67;6794:2;6789:3;6730:67;;;-1:-1;;;;;;;;;;;6810:55;;-1:-1;;;6894:2;6885:12;;6878:50;6956:2;6947:12;;6716:249;-1:-1;;6716:249;6974:477;;7152:85;7234:2;7229:3;7152:85;;;7270:34;7250:55;;7339:34;7334:2;7325:12;;7318:56;-1:-1;;;7403:2;7394:12;;7387:27;7442:2;7433:12;;7138:313;-1:-1;;7138:313;7460:397;;7620:67;7684:2;7679:3;7620:67;;;-1:-1;;;;;;;;;;;7700:55;;-1:-1;;;7784:2;7775:12;;7768:52;7848:2;7839:12;;7606:251;-1:-1;;7606:251;7866:431;;8044:85;8126:2;8121:3;8044:85;;;8162:34;8142:55;;-1:-1;;;8226:2;8217:12;;8210:50;8288:2;8279:12;;8030:267;-1:-1;;8030:267;8425:110;8506:23;8523:5;8506:23;;8542:107;8621:22;8637:5;8621:22;;8656:124;8738:36;8768:5;8738:36;;8787:110;8868:23;8885:5;8868:23;;8904:650;;9159:148;9303:3;9159:148;;;9152:155;;9318:75;9389:3;9380:6;9318:75;;;9415:2;9410:3;9406:12;9399:19;;9429:75;9500:3;9491:6;9429:75;;;-1:-1;9526:2;9517:12;;9140:414;-1:-1;;9140:414;9561:372;;9760:148;9904:3;9760:148;;9940:372;;10139:148;10283:3;10139:148;;10319:213;10437:2;10422:18;;10451:71;10426:9;10495:6;10451:71;;10539:201;10651:2;10636:18;;10665:65;10640:9;10703:6;10665:65;;10747:213;10865:2;10850:18;;10879:71;10854:9;10923:6;10879:71;;10967:547;11169:3;11154:19;;11184:71;11158:9;11228:6;11184:71;;;11266:72;11334:2;11323:9;11319:18;11310:6;11266:72;;;11349;11417:2;11406:9;11402:18;11393:6;11349:72;;;11432;11500:2;11489:9;11485:18;11476:6;11432:72;;;11140:374;;;;;;;;11521:547;11723:3;11708:19;;11738:71;11712:9;11782:6;11738:71;;;11820:72;11888:2;11877:9;11873:18;11864:6;11820:72;;;11903;11971:2;11960:9;11956:18;11947:6;11903:72;;;11986;12054:2;12043:9;12039:18;12030:6;11986:72;;12075:539;12273:3;12258:19;;12288:71;12262:9;12332:6;12288:71;;;12370:68;12434:2;12423:9;12419:18;12410:6;12370:68;;12621:293;12755:2;12769:47;;;12740:18;;12830:74;12740:18;12890:6;12830:74;;13229:407;13420:2;13434:47;;;13405:18;;13495:131;13405:18;13495:131;;13643:407;13834:2;13848:47;;;13819:18;;13909:131;13819:18;13909:131;;14057:407;14248:2;14262:47;;;14233:18;;14323:131;14233:18;14323:131;;14471:407;14662:2;14676:47;;;14647:18;;14737:131;14647:18;14737:131;;14885:407;15076:2;15090:47;;;15061:18;;15151:131;15061:18;15151:131;;15299:407;15490:2;15504:47;;;15475:18;;15565:131;15475:18;15565:131;;15933:209;16049:2;16034:18;;16063:69;16038:9;16105:6;16063:69;;16149:316;16291:2;16276:18;;16305:69;16280:9;16347:6;16305:69;;;16385:70;16451:2;16440:9;16436:18;16427:6;16385:70;;16472:205;16586:2;16571:18;;16600:67;16575:9;16640:6;16600:67;;16684:211;16801:2;16786:18;;16815:70;16790:9;16858:6;16815:70;;16902:209;17018:2;17003:18;;17032:69;17007:9;17074:6;17032:69;;17118:320;17262:2;17247:18;;17276:70;17251:9;17319:6;17276:70;;;17357:71;17424:2;17413:9;17409:18;17400:6;17357:71;;17445:118;;17535:5;17529:12;17519:22;17500:63;-1:-1;;17500:63;17700:163;17803:19;;;17852:4;17843:14;;17796:67;17872:145;18008:3;17986:31;-1:-1;17986:31;18025:91;;18087:24;18105:5;18087:24;;18123:85;18189:13;18182:21;;18165:43;18215:72;18277:5;18260:27;18294:121;-1:-1;;;;;18356:54;;18339:76;18501:88;18573:10;18562:22;;18545:44;18596:81;18667:4;18656:16;;18639:38;18684:104;-1:-1;;;;;18745:38;;18728:60;18795:106;;18873:23;18890:5;18873:23;;18909:268;18974:1;18981:101;18995:6;18992:1;18989:13;18981:101;;;19071:1;19066:3;19062:11;19056:18;19043:11;;;19036:39;19017:2;19010:10;18981:101;;;19097:6;19094:1;19091:13;19088:2;;;-1:-1;;19162:1;19144:16;;19137:27;18958:219;19266:97;19354:2;19334:14;-1:-1;;19330:28;;19314:49;19371:117;19440:24;19458:5;19440:24;;;19433:5;19430:35;19420:2;;19479:1;19476;19469:12;;:::i;19495:117::-;19564:24;19582:5;19564:24;;19743:115;19811:23;19828:5;19811:23;;19865:113;19932:22;19948:5;19932:22;", + "source": "pragma solidity ^0.5.16;\npragma experimental ABIEncoderV2;\n\ncontract Comp {\n /// @notice EIP-20 token name for this token\n string public constant name = \"Compound\";\n\n /// @notice EIP-20 token symbol for this token\n string public constant symbol = \"COMP\";\n\n /// @notice EIP-20 token decimals for this token\n uint8 public constant decimals = 18;\n\n /// @notice Total number of tokens in circulation\n uint public constant totalSupply = 10000000e18; // 10 million Comp\n\n /// @notice Allowance amounts on behalf of others\n mapping (address => mapping (address => uint96)) internal allowances;\n\n /// @notice Official record of token balances for each account\n mapping (address => uint96) internal balances;\n\n /// @notice A record of each accounts delegate\n mapping (address => address) public delegates;\n\n /// @notice A checkpoint for marking number of votes from a given block\n struct Checkpoint {\n uint32 fromBlock;\n uint96 votes;\n }\n\n /// @notice A record of votes checkpoints for each account, by index\n mapping (address => mapping (uint32 => Checkpoint)) public checkpoints;\n\n /// @notice The number of checkpoints for each account\n mapping (address => uint32) public numCheckpoints;\n\n /// @notice The EIP-712 typehash for the contract's domain\n bytes32 public constant DOMAIN_TYPEHASH = keccak256(\"EIP712Domain(string name,uint256 chainId,address verifyingContract)\");\n\n /// @notice The EIP-712 typehash for the delegation struct used by the contract\n bytes32 public constant DELEGATION_TYPEHASH = keccak256(\"Delegation(address delegatee,uint256 nonce,uint256 expiry)\");\n\n /// @notice A record of states for signing / validating signatures\n mapping (address => uint) public nonces;\n\n /// @notice An event thats emitted when an account changes its delegate\n event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);\n\n /// @notice An event thats emitted when a delegate account's vote balance changes\n event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance);\n\n /// @notice The standard EIP-20 transfer event\n event Transfer(address indexed from, address indexed to, uint256 amount);\n\n /// @notice The standard EIP-20 approval event\n event Approval(address indexed owner, address indexed spender, uint256 amount);\n\n /**\n * @notice Construct a new Comp token\n * @param account The initial account to grant all the tokens\n */\n constructor(address account) public {\n balances[account] = uint96(totalSupply);\n emit Transfer(address(0), account, totalSupply);\n }\n\n /**\n * @notice Get the number of tokens `spender` is approved to spend on behalf of `account`\n * @param account The address of the account holding the funds\n * @param spender The address of the account spending the funds\n * @return The number of tokens approved\n */\n function allowance(address account, address spender) external view returns (uint) {\n return allowances[account][spender];\n }\n\n /**\n * @notice Approve `spender` to transfer up to `amount` from `src`\n * @dev This will overwrite the approval amount for `spender`\n * and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve)\n * @param spender The address of the account which may transfer tokens\n * @param rawAmount The number of tokens that are approved (2^256-1 means infinite)\n * @return Whether or not the approval succeeded\n */\n function approve(address spender, uint rawAmount) external returns (bool) {\n uint96 amount;\n if (rawAmount == uint(-1)) {\n amount = uint96(-1);\n } else {\n amount = safe96(rawAmount, \"Comp::approve: amount exceeds 96 bits\");\n }\n\n allowances[msg.sender][spender] = amount;\n\n emit Approval(msg.sender, spender, amount);\n return true;\n }\n\n /**\n * @notice Get the number of tokens held by the `account`\n * @param account The address of the account to get the balance of\n * @return The number of tokens held\n */\n function balanceOf(address account) external view returns (uint) {\n return balances[account];\n }\n\n /**\n * @notice Transfer `amount` tokens from `msg.sender` to `dst`\n * @param dst The address of the destination account\n * @param rawAmount The number of tokens to transfer\n * @return Whether or not the transfer succeeded\n */\n function transfer(address dst, uint rawAmount) external returns (bool) {\n uint96 amount = safe96(rawAmount, \"Comp::transfer: amount exceeds 96 bits\");\n _transferTokens(msg.sender, dst, amount);\n return true;\n }\n\n /**\n * @notice Transfer `amount` tokens from `src` to `dst`\n * @param src The address of the source account\n * @param dst The address of the destination account\n * @param rawAmount The number of tokens to transfer\n * @return Whether or not the transfer succeeded\n */\n function transferFrom(address src, address dst, uint rawAmount) external returns (bool) {\n address spender = msg.sender;\n uint96 spenderAllowance = allowances[src][spender];\n uint96 amount = safe96(rawAmount, \"Comp::approve: amount exceeds 96 bits\");\n\n if (spender != src && spenderAllowance != uint96(-1)) {\n uint96 newAllowance = sub96(spenderAllowance, amount, \"Comp::transferFrom: transfer amount exceeds spender allowance\");\n allowances[src][spender] = newAllowance;\n\n emit Approval(src, spender, newAllowance);\n }\n\n _transferTokens(src, dst, amount);\n return true;\n }\n\n /**\n * @notice Delegate votes from `msg.sender` to `delegatee`\n * @param delegatee The address to delegate votes to\n */\n function delegate(address delegatee) public {\n return _delegate(msg.sender, delegatee);\n }\n\n /**\n * @notice Delegates votes from signatory to `delegatee`\n * @param delegatee The address to delegate votes to\n * @param nonce The contract state required to match the signature\n * @param expiry The time at which to expire the signature\n * @param v The recovery byte of the signature\n * @param r Half of the ECDSA signature pair\n * @param s Half of the ECDSA signature pair\n */\n function delegateBySig(address delegatee, uint nonce, uint expiry, uint8 v, bytes32 r, bytes32 s) public {\n bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this)));\n bytes32 structHash = keccak256(abi.encode(DELEGATION_TYPEHASH, delegatee, nonce, expiry));\n bytes32 digest = keccak256(abi.encodePacked(\"\\x19\\x01\", domainSeparator, structHash));\n address signatory = ecrecover(digest, v, r, s);\n require(signatory != address(0), \"Comp::delegateBySig: invalid signature\");\n require(nonce == nonces[signatory]++, \"Comp::delegateBySig: invalid nonce\");\n require(now <= expiry, \"Comp::delegateBySig: signature expired\");\n return _delegate(signatory, delegatee);\n }\n\n /**\n * @notice Gets the current votes balance for `account`\n * @param account The address to get votes balance\n * @return The number of current votes for `account`\n */\n function getCurrentVotes(address account) external view returns (uint96) {\n uint32 nCheckpoints = numCheckpoints[account];\n return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0;\n }\n\n /**\n * @notice Determine the prior number of votes for an account as of a block number\n * @dev Block number must be a finalized block or else this function will revert to prevent misinformation.\n * @param account The address of the account to check\n * @param blockNumber The block number to get the vote balance at\n * @return The number of votes the account had as of the given block\n */\n function getPriorVotes(address account, uint blockNumber) public view returns (uint96) {\n require(blockNumber < block.number, \"Comp::getPriorVotes: not yet determined\");\n\n uint32 nCheckpoints = numCheckpoints[account];\n if (nCheckpoints == 0) {\n return 0;\n }\n\n // First check most recent balance\n if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) {\n return checkpoints[account][nCheckpoints - 1].votes;\n }\n\n // Next check implicit zero balance\n if (checkpoints[account][0].fromBlock > blockNumber) {\n return 0;\n }\n\n uint32 lower = 0;\n uint32 upper = nCheckpoints - 1;\n while (upper > lower) {\n uint32 center = upper - (upper - lower) / 2; // ceil, avoiding overflow\n Checkpoint memory cp = checkpoints[account][center];\n if (cp.fromBlock == blockNumber) {\n return cp.votes;\n } else if (cp.fromBlock < blockNumber) {\n lower = center;\n } else {\n upper = center - 1;\n }\n }\n return checkpoints[account][lower].votes;\n }\n\n function _delegate(address delegator, address delegatee) internal {\n address currentDelegate = delegates[delegator];\n uint96 delegatorBalance = balances[delegator];\n delegates[delegator] = delegatee;\n\n emit DelegateChanged(delegator, currentDelegate, delegatee);\n\n _moveDelegates(currentDelegate, delegatee, delegatorBalance);\n }\n\n function _transferTokens(address src, address dst, uint96 amount) internal {\n require(src != address(0), \"Comp::_transferTokens: cannot transfer from the zero address\");\n require(dst != address(0), \"Comp::_transferTokens: cannot transfer to the zero address\");\n\n balances[src] = sub96(balances[src], amount, \"Comp::_transferTokens: transfer amount exceeds balance\");\n balances[dst] = add96(balances[dst], amount, \"Comp::_transferTokens: transfer amount overflows\");\n emit Transfer(src, dst, amount);\n\n _moveDelegates(delegates[src], delegates[dst], amount);\n }\n\n function _moveDelegates(address srcRep, address dstRep, uint96 amount) internal {\n if (srcRep != dstRep && amount > 0) {\n if (srcRep != address(0)) {\n uint32 srcRepNum = numCheckpoints[srcRep];\n uint96 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0;\n uint96 srcRepNew = sub96(srcRepOld, amount, \"Comp::_moveVotes: vote amount underflows\");\n _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew);\n }\n\n if (dstRep != address(0)) {\n uint32 dstRepNum = numCheckpoints[dstRep];\n uint96 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0;\n uint96 dstRepNew = add96(dstRepOld, amount, \"Comp::_moveVotes: vote amount overflows\");\n _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew);\n }\n }\n }\n\n function _writeCheckpoint(address delegatee, uint32 nCheckpoints, uint96 oldVotes, uint96 newVotes) internal {\n uint32 blockNumber = safe32(block.number, \"Comp::_writeCheckpoint: block number exceeds 32 bits\");\n\n if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) {\n checkpoints[delegatee][nCheckpoints - 1].votes = newVotes;\n } else {\n checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes);\n numCheckpoints[delegatee] = nCheckpoints + 1;\n }\n\n emit DelegateVotesChanged(delegatee, oldVotes, newVotes);\n }\n\n function safe32(uint n, string memory errorMessage) internal pure returns (uint32) {\n require(n < 2**32, errorMessage);\n return uint32(n);\n }\n\n function safe96(uint n, string memory errorMessage) internal pure returns (uint96) {\n require(n < 2**96, errorMessage);\n return uint96(n);\n }\n\n function add96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) {\n uint96 c = a + b;\n require(c >= a, errorMessage);\n return c;\n }\n\n function sub96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) {\n require(b <= a, errorMessage);\n return a - b;\n }\n\n function getChainId() internal pure returns (uint) {\n uint256 chainId;\n assembly { chainId := chainid() }\n return chainId;\n }\n}\n", + "sourcePath": "/Users/janliphardt/Documents/GitHub/optimism/omgx_examples/compound-simple/contracts/Comp.sol", + "ast": { + "absolutePath": "project:/contracts/Comp.sol", + "exportedSymbols": { + "Comp": [ + 957 + ] + }, + "id": 958, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.5", + ".16" + ], + "nodeType": "PragmaDirective", + "src": "0:24:0" + }, + { + "id": 2, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "25:33:0" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 957, + "linearizedBaseContracts": [ + 957 + ], + "name": "Comp", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 957, + "src": "129:40:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 3, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "129:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "436f6d706f756e64", + "id": 4, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "159:10:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_561ca898cce9f021c15a441ef41899706e923541cee724530075d1a1144761c7", + "typeString": "literal_string \"Compound\"" + }, + "value": "Compound" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 8, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 957, + "src": "227:38:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 6, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "227:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "434f4d50", + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "259:6:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b6dbcaeee318e11fe1e87d4af04bdd7b4d6a3f13307225dc7ee72f7c085ab454", + "typeString": "literal_string \"COMP\"" + }, + "value": "COMP" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 11, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 957, + "src": "325:35:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "325:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 10, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "358:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 14, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 957, + "src": "421:46:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "421:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3130303030303030653138", + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "456:11:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000_by_1", + "typeString": "int_const 10000000000000000000000000" + }, + "value": "10000000e18" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 20, + "name": "allowances", + "nodeType": "VariableDeclaration", + "scope": 957, + "src": "547:68:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint96_$_$", + "typeString": "mapping(address => mapping(address => uint96))" + }, + "typeName": { + "id": 19, + "keyType": { + "id": 15, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "556:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "547:48:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint96_$_$", + "typeString": "mapping(address => mapping(address => uint96))" + }, + "valueType": { + "id": 18, + "keyType": { + "id": 16, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "576:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "567:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + }, + "valueType": { + "id": 17, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "587:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 24, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 957, + "src": "689:45:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + }, + "typeName": { + "id": 23, + "keyType": { + "id": 21, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "698:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "689:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + }, + "valueType": { + "id": 22, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "709:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 28, + "name": "delegates", + "nodeType": "VariableDeclaration", + "scope": 957, + "src": "792:45:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "typeName": { + "id": 27, + "keyType": { + "id": 25, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "801:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "792:28:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "valueType": { + "id": 26, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "812:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "canonicalName": "Comp.Checkpoint", + "id": 33, + "members": [ + { + "constant": false, + "id": 30, + "name": "fromBlock", + "nodeType": "VariableDeclaration", + "scope": 33, + "src": "948:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 29, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "948:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 32, + "name": "votes", + "nodeType": "VariableDeclaration", + "scope": 33, + "src": "974:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 31, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "974:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Checkpoint", + "nodeType": "StructDefinition", + "scope": 957, + "src": "920:73:0", + "visibility": "public" + }, + { + "constant": false, + "id": 39, + "name": "checkpoints", + "nodeType": "VariableDeclaration", + "scope": 957, + "src": "1072:70:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct Comp.Checkpoint))" + }, + "typeName": { + "id": 38, + "keyType": { + "id": 34, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1081:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1072:51:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct Comp.Checkpoint))" + }, + "valueType": { + "id": 37, + "keyType": { + "id": 35, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1101:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Mapping", + "src": "1092:30:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$", + "typeString": "mapping(uint32 => struct Comp.Checkpoint)" + }, + "valueType": { + "contractScope": null, + "id": 36, + "name": "Checkpoint", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 33, + "src": "1111:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$33_storage_ptr", + "typeString": "struct Comp.Checkpoint" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 43, + "name": "numCheckpoints", + "nodeType": "VariableDeclaration", + "scope": 957, + "src": "1208:49:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$", + "typeString": "mapping(address => uint32)" + }, + "typeName": { + "id": 42, + "keyType": { + "id": 40, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1217:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1208:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$", + "typeString": "mapping(address => uint32)" + }, + "valueType": { + "id": 41, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1228:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "id": 48, + "name": "DOMAIN_TYPEHASH", + "nodeType": "VariableDeclaration", + "scope": 957, + "src": "1327:122:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 44, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1327:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1379:69:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866", + "typeString": "literal_string \"EIP712Domain(string name,uint256 chainId,address verifyingContract)\"" + }, + "value": "EIP712Domain(string name,uint256 chainId,address verifyingContract)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866", + "typeString": "literal_string \"EIP712Domain(string name,uint256 chainId,address verifyingContract)\"" + } + ], + "id": 45, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3349, + "src": "1369:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1369:80:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 53, + "name": "DELEGATION_TYPEHASH", + "nodeType": "VariableDeclaration", + "scope": 957, + "src": "1540:117:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 49, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1540:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "44656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e743235362065787069727929", + "id": 51, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1596:60:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf", + "typeString": "literal_string \"Delegation(address delegatee,uint256 nonce,uint256 expiry)\"" + }, + "value": "Delegation(address delegatee,uint256 nonce,uint256 expiry)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_e48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf", + "typeString": "literal_string \"Delegation(address delegatee,uint256 nonce,uint256 expiry)\"" + } + ], + "id": 50, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3349, + "src": "1586:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1586:71:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 57, + "name": "nonces", + "nodeType": "VariableDeclaration", + "scope": 957, + "src": "1735:39:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 56, + "keyType": { + "id": 54, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1744:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1735:25:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 55, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1755:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": "@notice An event thats emitted when an account changes its delegate", + "id": 65, + "name": "DelegateChanged", + "nodeType": "EventDefinition", + "parameters": { + "id": 64, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 59, + "indexed": true, + "name": "delegator", + "nodeType": "VariableDeclaration", + "scope": 65, + "src": "1879:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 58, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1879:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 61, + "indexed": true, + "name": "fromDelegate", + "nodeType": "VariableDeclaration", + "scope": 65, + "src": "1906:28:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 60, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1906:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 63, + "indexed": true, + "name": "toDelegate", + "nodeType": "VariableDeclaration", + "scope": 65, + "src": "1936:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 62, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1936:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1878:85:0" + }, + "src": "1857:107:0" + }, + { + "anonymous": false, + "documentation": "@notice An event thats emitted when a delegate account's vote balance changes", + "id": 73, + "name": "DelegateVotesChanged", + "nodeType": "EventDefinition", + "parameters": { + "id": 72, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 67, + "indexed": true, + "name": "delegate", + "nodeType": "VariableDeclaration", + "scope": 73, + "src": "2083:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 66, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2083:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 69, + "indexed": false, + "name": "previousBalance", + "nodeType": "VariableDeclaration", + "scope": 73, + "src": "2109:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 68, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2109:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 71, + "indexed": false, + "name": "newBalance", + "nodeType": "VariableDeclaration", + "scope": 73, + "src": "2131:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 70, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2131:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2082:65:0" + }, + "src": "2056:92:0" + }, + { + "anonymous": false, + "documentation": "@notice The standard EIP-20 transfer event", + "id": 81, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 80, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 75, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "2220:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 74, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2220:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 77, + "indexed": true, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "2242:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 76, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2242:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 79, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "2262:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 78, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2262:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2219:58:0" + }, + "src": "2205:73:0" + }, + { + "anonymous": false, + "documentation": "@notice The standard EIP-20 approval event", + "id": 89, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 88, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 83, + "indexed": true, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 89, + "src": "2350:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 82, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2350:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 85, + "indexed": true, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 89, + "src": "2373:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 84, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2373:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 87, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 89, + "src": "2398:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 86, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2398:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2349:64:0" + }, + "src": "2335:79:0" + }, + { + "body": { + "id": 110, + "nodeType": "Block", + "src": "2580:113:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 94, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2590:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 96, + "indexExpression": { + "argumentTypes": null, + "id": 95, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 91, + "src": "2599:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2590:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 98, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14, + "src": "2617:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 97, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2610:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + }, + "typeName": "uint96" + }, + "id": 99, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2610:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "2590:39:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "id": 101, + "nodeType": "ExpressionStatement", + "src": "2590:39:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2661:1:0", + "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": 103, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2653:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2653:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 106, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 91, + "src": "2665:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 107, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14, + "src": "2674:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 102, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 81, + "src": "2644:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2644:42:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 109, + "nodeType": "EmitStatement", + "src": "2639:47:0" + } + ] + }, + "documentation": "@notice Construct a new Comp token\n@param account The initial account to grant all the tokens", + "id": 111, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 92, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 91, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 111, + "src": "2556:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 90, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2556:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2555:17:0" + }, + "returnParameters": { + "id": 93, + "nodeType": "ParameterList", + "parameters": [], + "src": "2580:0:0" + }, + "scope": 957, + "src": "2544:149:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 126, + "nodeType": "Block", + "src": "3071:52:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 120, + "name": "allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20, + "src": "3088:10:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint96_$_$", + "typeString": "mapping(address => mapping(address => uint96))" + } + }, + "id": 122, + "indexExpression": { + "argumentTypes": null, + "id": 121, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 113, + "src": "3099:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3088:19:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 124, + "indexExpression": { + "argumentTypes": null, + "id": 123, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 115, + "src": "3108:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3088:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 119, + "id": 125, + "nodeType": "Return", + "src": "3081:35:0" + } + ] + }, + "documentation": "@notice Get the number of tokens `spender` is approved to spend on behalf of `account`\n@param account The address of the account holding the funds\n@param spender The address of the account spending the funds\n@return The number of tokens approved", + "id": 127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 113, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 127, + "src": "3008:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3008:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 115, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 127, + "src": "3025:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3025:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3007:34:0" + }, + "returnParameters": { + "id": 119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 118, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 127, + "src": "3065:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 117, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3065:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3064:6:0" + }, + "scope": 957, + "src": "2989:134:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 180, + "nodeType": "Block", + "src": "3665:333:0", + "statements": [ + { + "assignments": [ + 137 + ], + "declarations": [ + { + "constant": false, + "id": 137, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 180, + "src": "3675:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 136, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "3675:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 138, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "3675:13:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 139, + "name": "rawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 131, + "src": "3702:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "3720:2:0", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 141, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3721:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3715:4:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 143, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3715:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3702:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 160, + "nodeType": "Block", + "src": "3775:92:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 153, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 137, + "src": "3789:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 155, + "name": "rawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 131, + "src": "3805:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "436f6d703a3a617070726f76653a20616d6f756e7420657863656564732039362062697473", + "id": 156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3816:39:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_32dab9ece0397c38c85244ed755f6110088fb13d43a7e9d6809da7619813d0fe", + "typeString": "literal_string \"Comp::approve: amount exceeds 96 bits\"" + }, + "value": "Comp::approve: amount exceeds 96 bits" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_32dab9ece0397c38c85244ed755f6110088fb13d43a7e9d6809da7619813d0fe", + "typeString": "literal_string \"Comp::approve: amount exceeds 96 bits\"" + } + ], + "id": 154, + "name": "safe96", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "3798:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint96_$", + "typeString": "function (uint256,string memory) pure returns (uint96)" + } + }, + "id": 157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3798:58:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "3789:67:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "id": 159, + "nodeType": "ExpressionStatement", + "src": "3789:67:0" + } + ] + }, + "id": 161, + "nodeType": "IfStatement", + "src": "3698:169:0", + "trueBody": { + "id": 152, + "nodeType": "Block", + "src": "3725:44:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 145, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 137, + "src": "3739:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "3755:2:0", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3756:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 146, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3748:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + }, + "typeName": "uint96" + }, + "id": 149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3748:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "3739:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "id": 151, + "nodeType": "ExpressionStatement", + "src": "3739:19:0" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 162, + "name": "allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20, + "src": "3877:10:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint96_$_$", + "typeString": "mapping(address => mapping(address => uint96))" + } + }, + "id": 166, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 163, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "3888:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3888:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3877:22:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 167, + "indexExpression": { + "argumentTypes": null, + "id": 165, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 129, + "src": "3900:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3877:31:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 168, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 137, + "src": "3911:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "3877:40:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "id": 170, + "nodeType": "ExpressionStatement", + "src": "3877:40:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 172, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "3942:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3942:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 174, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 129, + "src": "3954:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 175, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 137, + "src": "3963:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 171, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "3933:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3933:37:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 177, + "nodeType": "EmitStatement", + "src": "3928:42:0" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3987:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 135, + "id": 179, + "nodeType": "Return", + "src": "3980:11:0" + } + ] + }, + "documentation": "@notice Approve `spender` to transfer up to `amount` from `src`\n@dev This will overwrite the approval amount for `spender`\n and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve)\n@param spender The address of the account which may transfer tokens\n@param rawAmount The number of tokens that are approved (2^256-1 means infinite)\n@return Whether or not the approval succeeded", + "id": 181, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 129, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "3608:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3608:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 131, + "name": "rawAmount", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "3625:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 130, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3625:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3607:33:0" + }, + "returnParameters": { + "id": 135, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 134, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "3659:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 133, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3659:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3658:6:0" + }, + "scope": 957, + "src": "3591:407:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 192, + "nodeType": "Block", + "src": "4259:41:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 188, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "4276:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 190, + "indexExpression": { + "argumentTypes": null, + "id": 189, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "4285:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4276:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 187, + "id": 191, + "nodeType": "Return", + "src": "4269:24:0" + } + ] + }, + "documentation": "@notice Get the number of tokens held by the `account`\n@param account The address of the account to get the balance of\n@return The number of tokens held", + "id": 193, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 183, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "4213:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4213:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4212:17:0" + }, + "returnParameters": { + "id": 187, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 186, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "4253:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 185, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4253:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4252:6:0" + }, + "scope": 957, + "src": "4194:106:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 218, + "nodeType": "Block", + "src": "4627:163:0", + "statements": [ + { + "assignments": [ + 203 + ], + "declarations": [ + { + "constant": false, + "id": 203, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "4637:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 202, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "4637:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 208, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 205, + "name": "rawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "4660:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "436f6d703a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473", + "id": 206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4671:40:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5bdeafae4aaace0ed9b7df6e60f285c9e8e84a3ceac05af6b6259bfed8e161f5", + "typeString": "literal_string \"Comp::transfer: amount exceeds 96 bits\"" + }, + "value": "Comp::transfer: amount exceeds 96 bits" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_5bdeafae4aaace0ed9b7df6e60f285c9e8e84a3ceac05af6b6259bfed8e161f5", + "typeString": "literal_string \"Comp::transfer: amount exceeds 96 bits\"" + } + ], + "id": 204, + "name": "safe96", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "4653:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint96_$", + "typeString": "function (uint256,string memory) pure returns (uint96)" + } + }, + "id": 207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4653:59:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4637:75:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 210, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "4738:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4738:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 212, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 195, + "src": "4750:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 213, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "4755:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 209, + "name": "_transferTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 668, + "src": "4722:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint96_$returns$__$", + "typeString": "function (address,address,uint96)" + } + }, + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4722:40:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 215, + "nodeType": "ExpressionStatement", + "src": "4722:40:0" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4779:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 201, + "id": 217, + "nodeType": "Return", + "src": "4772:11:0" + } + ] + }, + "documentation": "@notice Transfer `amount` tokens from `msg.sender` to `dst`\n@param dst The address of the destination account\n@param rawAmount The number of tokens to transfer\n@return Whether or not the transfer succeeded", + "id": 219, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 198, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 195, + "name": "dst", + "nodeType": "VariableDeclaration", + "scope": 219, + "src": "4574:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 194, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4574:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 197, + "name": "rawAmount", + "nodeType": "VariableDeclaration", + "scope": 219, + "src": "4587:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 196, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4587:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4573:29:0" + }, + "returnParameters": { + "id": 201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 200, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 219, + "src": "4621:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 199, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4621:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4620:6:0" + }, + "scope": 957, + "src": "4556:234:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 292, + "nodeType": "Block", + "src": "5179:570:0", + "statements": [ + { + "assignments": [ + 231 + ], + "declarations": [ + { + "constant": false, + "id": 231, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 292, + "src": "5189:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 230, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5189:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 234, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 232, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "5207:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5207:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5189:28:0" + }, + { + "assignments": [ + 236 + ], + "declarations": [ + { + "constant": false, + "id": 236, + "name": "spenderAllowance", + "nodeType": "VariableDeclaration", + "scope": 292, + "src": "5227:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 235, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "5227:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 242, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 237, + "name": "allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20, + "src": "5253:10:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint96_$_$", + "typeString": "mapping(address => mapping(address => uint96))" + } + }, + "id": 239, + "indexExpression": { + "argumentTypes": null, + "id": 238, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "5264:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5253:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 241, + "indexExpression": { + "argumentTypes": null, + "id": 240, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "5269:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5253:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5227:50:0" + }, + { + "assignments": [ + 244 + ], + "declarations": [ + { + "constant": false, + "id": 244, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 292, + "src": "5287:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 243, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "5287:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 249, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 246, + "name": "rawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 225, + "src": "5310:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "436f6d703a3a617070726f76653a20616d6f756e7420657863656564732039362062697473", + "id": 247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5321:39:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_32dab9ece0397c38c85244ed755f6110088fb13d43a7e9d6809da7619813d0fe", + "typeString": "literal_string \"Comp::approve: amount exceeds 96 bits\"" + }, + "value": "Comp::approve: amount exceeds 96 bits" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_32dab9ece0397c38c85244ed755f6110088fb13d43a7e9d6809da7619813d0fe", + "typeString": "literal_string \"Comp::approve: amount exceeds 96 bits\"" + } + ], + "id": 245, + "name": "safe96", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "5303:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint96_$", + "typeString": "function (uint256,string memory) pure returns (uint96)" + } + }, + "id": 248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5303:58:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5287:74:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 250, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "5376:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 251, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "5387:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5376:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "id": 258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 253, + "name": "spenderAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 236, + "src": "5394:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "5421:2:0", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5422:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5414:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + }, + "typeName": "uint96" + }, + "id": 257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5414:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "5394:30:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5376:48:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 283, + "nodeType": "IfStatement", + "src": "5372:306:0", + "trueBody": { + "id": 282, + "nodeType": "Block", + "src": "5426:252:0", + "statements": [ + { + "assignments": [ + 261 + ], + "declarations": [ + { + "constant": false, + "id": 261, + "name": "newAllowance", + "nodeType": "VariableDeclaration", + "scope": 282, + "src": "5440:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 260, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "5440:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 267, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 263, + "name": "spenderAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 236, + "src": "5468:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "argumentTypes": null, + "id": 264, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 244, + "src": "5486:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "argumentTypes": null, + "hexValue": "436f6d703a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365", + "id": 265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5494:63:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b7ac833594da1df58fd15c3b6b55eb20762dba088c48b65ce9d522a789ff2495", + "typeString": "literal_string \"Comp::transferFrom: transfer amount exceeds spender allowance\"" + }, + "value": "Comp::transferFrom: transfer amount exceeds spender allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_stringliteral_b7ac833594da1df58fd15c3b6b55eb20762dba088c48b65ce9d522a789ff2495", + "typeString": "literal_string \"Comp::transferFrom: transfer amount exceeds spender allowance\"" + } + ], + "id": 262, + "name": "sub96", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "5462:5:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint96_$_t_uint96_$_t_string_memory_ptr_$returns$_t_uint96_$", + "typeString": "function (uint96,uint96,string memory) pure returns (uint96)" + } + }, + "id": 266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5462:96:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5440:118:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 268, + "name": "allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20, + "src": "5572:10:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint96_$_$", + "typeString": "mapping(address => mapping(address => uint96))" + } + }, + "id": 271, + "indexExpression": { + "argumentTypes": null, + "id": 269, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "5583:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5572:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 272, + "indexExpression": { + "argumentTypes": null, + "id": 270, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "5588:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5572:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 273, + "name": "newAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "5599:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "5572:39:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "id": 275, + "nodeType": "ExpressionStatement", + "src": "5572:39:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 277, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "5640:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 278, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "5645:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 279, + "name": "newAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "5654:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 276, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "5631:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5631:36:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 281, + "nodeType": "EmitStatement", + "src": "5626:41:0" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 285, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "5704:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 286, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 223, + "src": "5709:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 287, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 244, + "src": "5714:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 284, + "name": "_transferTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 668, + "src": "5688:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint96_$returns$__$", + "typeString": "function (address,address,uint96)" + } + }, + "id": 288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5688:33:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 289, + "nodeType": "ExpressionStatement", + "src": "5688:33:0" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 290, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5738:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 229, + "id": 291, + "nodeType": "Return", + "src": "5731:11:0" + } + ] + }, + "documentation": "@notice Transfer `amount` tokens from `src` to `dst`\n@param src The address of the source account\n@param dst The address of the destination account\n@param rawAmount The number of tokens to transfer\n@return Whether or not the transfer succeeded", + "id": 293, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 221, + "name": "src", + "nodeType": "VariableDeclaration", + "scope": 293, + "src": "5113:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 220, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5113:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 223, + "name": "dst", + "nodeType": "VariableDeclaration", + "scope": 293, + "src": "5126:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 222, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5126:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 225, + "name": "rawAmount", + "nodeType": "VariableDeclaration", + "scope": 293, + "src": "5139:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 224, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5139:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5112:42:0" + }, + "returnParameters": { + "id": 229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 228, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 293, + "src": "5173:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 227, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5173:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5172:6:0" + }, + "scope": 957, + "src": "5091:658:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 304, + "nodeType": "Block", + "src": "5935:56:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 299, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "5962:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5962:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 301, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 295, + "src": "5974:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 298, + "name": "_delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 600, + "src": "5952:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5952:32:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "functionReturnParameters": 297, + "id": 303, + "nodeType": "Return", + "src": "5945:39:0" + } + ] + }, + "documentation": "@notice Delegate votes from `msg.sender` to `delegatee`\n@param delegatee The address to delegate votes to", + "id": 305, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "delegate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 296, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 295, + "name": "delegatee", + "nodeType": "VariableDeclaration", + "scope": 305, + "src": "5909:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5909:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5908:19:0" + }, + "returnParameters": { + "id": 297, + "nodeType": "ParameterList", + "parameters": [], + "src": "5935:0:0" + }, + "scope": 957, + "src": "5891:100:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 402, + "nodeType": "Block", + "src": "6519:675:0", + "statements": [ + { + "assignments": [ + 321 + ], + "declarations": [ + { + "constant": false, + "id": 321, + "name": "domainSeparator", + "nodeType": "VariableDeclaration", + "scope": 402, + "src": "6529:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 320, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6529:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 338, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 325, + "name": "DOMAIN_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48, + "src": "6576:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 328, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5, + "src": "6609:4:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6603:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": "bytes" + }, + "id": 329, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6603:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 326, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3349, + "src": "6593:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6593:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 331, + "name": "getChainId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 956, + "src": "6617:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6617:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 334, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3369, + "src": "6639:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comp_$957", + "typeString": "contract Comp" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comp_$957", + "typeString": "contract Comp" + } + ], + "id": 333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6631:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6631:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 323, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3342, + "src": "6565:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6565:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6565:80:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 322, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3349, + "src": "6555:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6555:91:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6529:117:0" + }, + { + "assignments": [ + 340 + ], + "declarations": [ + { + "constant": false, + "id": 340, + "name": "structHash", + "nodeType": "VariableDeclaration", + "scope": 402, + "src": "6656:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 339, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6656:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 350, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 344, + "name": "DELEGATION_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 53, + "src": "6698:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 345, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "6719:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 346, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "6730:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 347, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "6737:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 342, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3342, + "src": "6687:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 343, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6687:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6687:57:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 341, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3349, + "src": "6677:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6677:68:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6656:89:0" + }, + { + "assignments": [ + 352 + ], + "declarations": [ + { + "constant": false, + "id": 352, + "name": "digest", + "nodeType": "VariableDeclaration", + "scope": 402, + "src": "6755:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 351, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6755:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 361, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "1901", + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6799:10:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + "value": "\u0019\u0001" + }, + { + "argumentTypes": null, + "id": 357, + "name": "domainSeparator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 321, + "src": "6811:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 358, + "name": "structHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 340, + "src": "6828:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 354, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3342, + "src": "6782:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6782:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6782:57:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 353, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3349, + "src": "6772:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6772:68:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6755:85:0" + }, + { + "assignments": [ + 363 + ], + "declarations": [ + { + "constant": false, + "id": 363, + "name": "signatory", + "nodeType": "VariableDeclaration", + "scope": 402, + "src": "6850:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 362, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6850:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 370, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 365, + "name": "digest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 352, + "src": "6880:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 366, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 313, + "src": "6888:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 367, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 315, + "src": "6891:1:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 368, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 317, + "src": "6894:1:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 364, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3347, + "src": "6870:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6870:26:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6850:46:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 372, + "name": "signatory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "6914:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 374, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6935:1:0", + "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": 373, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6927:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 375, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6927:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "6914:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "436f6d703a3a64656c656761746542795369673a20696e76616c6964207369676e6174757265", + "id": 377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6939:40:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2af9d25b44c3e789cf7d12e941fc7ef1e32cecdd98da61996de7571027751bd3", + "typeString": "literal_string \"Comp::delegateBySig: invalid signature\"" + }, + "value": "Comp::delegateBySig: invalid signature" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2af9d25b44c3e789cf7d12e941fc7ef1e32cecdd98da61996de7571027751bd3", + "typeString": "literal_string \"Comp::delegateBySig: invalid signature\"" + } + ], + "id": 371, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "6906:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6906:74:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 379, + "nodeType": "ExpressionStatement", + "src": "6906:74:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 381, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "6998:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7007:19:0", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 382, + "name": "nonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 57, + "src": "7007:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 384, + "indexExpression": { + "argumentTypes": null, + "id": 383, + "name": "signatory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "7014:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7007:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6998:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "436f6d703a3a64656c656761746542795369673a20696e76616c6964206e6f6e6365", + "id": 387, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7028:36:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_646cb63637df51b5cf3e35b8d418574ca2fa5dde981ba9f8f5779cfcbbc8a355", + "typeString": "literal_string \"Comp::delegateBySig: invalid nonce\"" + }, + "value": "Comp::delegateBySig: invalid nonce" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_646cb63637df51b5cf3e35b8d418574ca2fa5dde981ba9f8f5779cfcbbc8a355", + "typeString": "literal_string \"Comp::delegateBySig: invalid nonce\"" + } + ], + "id": 380, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "6990:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6990:75:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 389, + "nodeType": "ExpressionStatement", + "src": "6990:75:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 391, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3357, + "src": "7083:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 392, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "7090:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7083:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "436f6d703a3a64656c656761746542795369673a207369676e61747572652065787069726564", + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7098:40:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2e8a87756e5afc73b82eff32f16bb6b10740f4f70e3e129eab06194e30ad3059", + "typeString": "literal_string \"Comp::delegateBySig: signature expired\"" + }, + "value": "Comp::delegateBySig: signature expired" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2e8a87756e5afc73b82eff32f16bb6b10740f4f70e3e129eab06194e30ad3059", + "typeString": "literal_string \"Comp::delegateBySig: signature expired\"" + } + ], + "id": 390, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "7075:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7075:64:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 396, + "nodeType": "ExpressionStatement", + "src": "7075:64:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 398, + "name": "signatory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "7166:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 399, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "7177:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 397, + "name": "_delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 600, + "src": "7156:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7156:31:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "functionReturnParameters": 319, + "id": 401, + "nodeType": "Return", + "src": "7149:38:0" + } + ] + }, + "documentation": "@notice Delegates votes from signatory to `delegatee`\n@param delegatee The address to delegate votes to\n@param nonce The contract state required to match the signature\n@param expiry The time at which to expire the signature\n@param v The recovery byte of the signature\n@param r Half of the ECDSA signature pair\n@param s Half of the ECDSA signature pair", + "id": 403, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "delegateBySig", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 318, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 307, + "name": "delegatee", + "nodeType": "VariableDeclaration", + "scope": 403, + "src": "6437:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 306, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6437:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 309, + "name": "nonce", + "nodeType": "VariableDeclaration", + "scope": 403, + "src": "6456:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 308, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6456:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 311, + "name": "expiry", + "nodeType": "VariableDeclaration", + "scope": 403, + "src": "6468:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 310, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6468:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 313, + "name": "v", + "nodeType": "VariableDeclaration", + "scope": 403, + "src": "6481:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 312, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "6481:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 315, + "name": "r", + "nodeType": "VariableDeclaration", + "scope": 403, + "src": "6490:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 314, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6490:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 317, + "name": "s", + "nodeType": "VariableDeclaration", + "scope": 403, + "src": "6501:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 316, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6501:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6436:75:0" + }, + "returnParameters": { + "id": 319, + "nodeType": "ParameterList", + "parameters": [], + "src": "6519:0:0" + }, + "scope": 957, + "src": "6414:780:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 430, + "nodeType": "Block", + "src": "7461:146:0", + "statements": [ + { + "assignments": [ + 411 + ], + "declarations": [ + { + "constant": false, + "id": 411, + "name": "nCheckpoints", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "7471:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 410, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "7471:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 415, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 412, + "name": "numCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "7493:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$", + "typeString": "mapping(address => uint32)" + } + }, + "id": 414, + "indexExpression": { + "argumentTypes": null, + "id": 413, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 405, + "src": "7508:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7493:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7471:45:0" + }, + { + "expression": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 416, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 411, + "src": "7533:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7548:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7533:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7599:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "7533:67:0", + "trueExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 419, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "7552:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))" + } + }, + "id": 421, + "indexExpression": { + "argumentTypes": null, + "id": 420, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 405, + "src": "7564:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7552:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$", + "typeString": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + } + }, + "id": 425, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 422, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 411, + "src": "7573:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7588:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7573:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7552:38:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$33_storage", + "typeString": "struct Comp.Checkpoint storage ref" + } + }, + "id": 426, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votes", + "nodeType": "MemberAccess", + "referencedDeclaration": 32, + "src": "7552:44:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 409, + "id": 429, + "nodeType": "Return", + "src": "7526:74:0" + } + ] + }, + "documentation": "@notice Gets the current votes balance for `account`\n@param account The address to get votes balance\n@return The number of current votes for `account`", + "id": 431, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getCurrentVotes", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 405, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 431, + "src": "7413:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 404, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7413:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7412:17:0" + }, + "returnParameters": { + "id": 409, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 408, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 431, + "src": "7453:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 407, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "7453:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7452:8:0" + }, + "scope": 957, + "src": "7388:219:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 561, + "nodeType": "Block", + "src": "8116:1099:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 441, + "name": "blockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 435, + "src": "8134:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 442, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3345, + "src": "8148:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8148:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8134:26:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "436f6d703a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e6564", + "id": 445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8162:41:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_49387db7fef935f0f28be8b61df0527ef3c11db5acad132a74e4fb5d480e55d0", + "typeString": "literal_string \"Comp::getPriorVotes: not yet determined\"" + }, + "value": "Comp::getPriorVotes: not yet determined" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_49387db7fef935f0f28be8b61df0527ef3c11db5acad132a74e4fb5d480e55d0", + "typeString": "literal_string \"Comp::getPriorVotes: not yet determined\"" + } + ], + "id": 440, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "8126:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8126:78:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 447, + "nodeType": "ExpressionStatement", + "src": "8126:78:0" + }, + { + "assignments": [ + 449 + ], + "declarations": [ + { + "constant": false, + "id": 449, + "name": "nCheckpoints", + "nodeType": "VariableDeclaration", + "scope": 561, + "src": "8215:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 448, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "8215:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 453, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 450, + "name": "numCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "8237:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$", + "typeString": "mapping(address => uint32)" + } + }, + "id": 452, + "indexExpression": { + "argumentTypes": null, + "id": 451, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 433, + "src": "8252:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8237:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8215:45:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 454, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 449, + "src": "8274:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8290:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8274:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 460, + "nodeType": "IfStatement", + "src": "8270:56:0", + "trueBody": { + "id": 459, + "nodeType": "Block", + "src": "8293:33:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8314:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 439, + "id": 458, + "nodeType": "Return", + "src": "8307:8:0" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 461, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "8383:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))" + } + }, + "id": 463, + "indexExpression": { + "argumentTypes": null, + "id": 462, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 433, + "src": "8395:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8383:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$", + "typeString": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + } + }, + "id": 467, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 464, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 449, + "src": "8404:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 465, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8419:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8404:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8383:38:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$33_storage", + "typeString": "struct Comp.Checkpoint storage ref" + } + }, + "id": 468, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fromBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 30, + "src": "8383:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 469, + "name": "blockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 435, + "src": "8435:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8383:63:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 481, + "nodeType": "IfStatement", + "src": "8379:145:0", + "trueBody": { + "id": 480, + "nodeType": "Block", + "src": "8448:76:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 471, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "8469:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))" + } + }, + "id": 473, + "indexExpression": { + "argumentTypes": null, + "id": 472, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 433, + "src": "8481:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8469:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$", + "typeString": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + } + }, + "id": 477, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 474, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 449, + "src": "8490:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8505:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8490:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8469:38:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$33_storage", + "typeString": "struct Comp.Checkpoint storage ref" + } + }, + "id": 478, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votes", + "nodeType": "MemberAccess", + "referencedDeclaration": 32, + "src": "8469:44:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 439, + "id": 479, + "nodeType": "Return", + "src": "8462:51:0" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 482, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "8582:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))" + } + }, + "id": 484, + "indexExpression": { + "argumentTypes": null, + "id": 483, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 433, + "src": "8594:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8582:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$", + "typeString": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + } + }, + "id": 486, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8603:1:0", + "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": "8582:23:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$33_storage", + "typeString": "struct Comp.Checkpoint storage ref" + } + }, + "id": 487, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fromBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 30, + "src": "8582:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 488, + "name": "blockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 435, + "src": "8618:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8582:47:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 493, + "nodeType": "IfStatement", + "src": "8578:86:0", + "trueBody": { + "id": 492, + "nodeType": "Block", + "src": "8631:33:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 490, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8652:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 439, + "id": 491, + "nodeType": "Return", + "src": "8645:8:0" + } + ] + } + }, + { + "assignments": [ + 495 + ], + "declarations": [ + { + "constant": false, + "id": 495, + "name": "lower", + "nodeType": "VariableDeclaration", + "scope": 561, + "src": "8674:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 494, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "8674:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 497, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 496, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8689:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "8674:16:0" + }, + { + "assignments": [ + 499 + ], + "declarations": [ + { + "constant": false, + "id": 499, + "name": "upper", + "nodeType": "VariableDeclaration", + "scope": 561, + "src": "8700:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 498, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "8700:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 503, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 500, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 449, + "src": "8715:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8730:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8715:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8700:31:0" + }, + { + "body": { + "id": 552, + "nodeType": "Block", + "src": "8763:396:0", + "statements": [ + { + "assignments": [ + 508 + ], + "declarations": [ + { + "constant": false, + "id": 508, + "name": "center", + "nodeType": "VariableDeclaration", + "scope": 552, + "src": "8777:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 507, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "8777:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 517, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 509, + "name": "upper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 499, + "src": "8793:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 510, + "name": "upper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 499, + "src": "8802:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 511, + "name": "lower", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 495, + "src": "8810:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "8802:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 513, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8801:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 514, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8819:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8801:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "8793:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8777:43:0" + }, + { + "assignments": [ + 519 + ], + "declarations": [ + { + "constant": false, + "id": 519, + "name": "cp", + "nodeType": "VariableDeclaration", + "scope": 552, + "src": "8861:20:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$33_memory_ptr", + "typeString": "struct Comp.Checkpoint" + }, + "typeName": { + "contractScope": null, + "id": 518, + "name": "Checkpoint", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 33, + "src": "8861:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$33_storage_ptr", + "typeString": "struct Comp.Checkpoint" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 525, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 520, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "8884:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))" + } + }, + "id": 522, + "indexExpression": { + "argumentTypes": null, + "id": 521, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 433, + "src": "8896:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8884:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$", + "typeString": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + } + }, + "id": 524, + "indexExpression": { + "argumentTypes": null, + "id": 523, + "name": "center", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 508, + "src": "8905:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8884:28:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$33_storage", + "typeString": "struct Comp.Checkpoint storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8861:51:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 526, + "name": "cp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 519, + "src": "8930:2:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$33_memory_ptr", + "typeString": "struct Comp.Checkpoint memory" + } + }, + "id": 527, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fromBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 30, + "src": "8930:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 528, + "name": "blockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 435, + "src": "8946:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8930:27:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 534, + "name": "cp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 519, + "src": "9017:2:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$33_memory_ptr", + "typeString": "struct Comp.Checkpoint memory" + } + }, + "id": 535, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fromBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 30, + "src": "9017:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 536, + "name": "blockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 435, + "src": "9032:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9017:26:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 549, + "nodeType": "Block", + "src": "9098:51:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 543, + "name": "upper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 499, + "src": "9116:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 544, + "name": "center", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 508, + "src": "9124:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 545, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9133:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9124:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "9116:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 548, + "nodeType": "ExpressionStatement", + "src": "9116:18:0" + } + ] + }, + "id": 550, + "nodeType": "IfStatement", + "src": "9013:136:0", + "trueBody": { + "id": 542, + "nodeType": "Block", + "src": "9045:47:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 538, + "name": "lower", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 495, + "src": "9063:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 539, + "name": "center", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 508, + "src": "9071:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "9063:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 541, + "nodeType": "ExpressionStatement", + "src": "9063:14:0" + } + ] + } + }, + "id": 551, + "nodeType": "IfStatement", + "src": "8926:223:0", + "trueBody": { + "id": 533, + "nodeType": "Block", + "src": "8959:48:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 530, + "name": "cp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 519, + "src": "8984:2:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$33_memory_ptr", + "typeString": "struct Comp.Checkpoint memory" + } + }, + "id": 531, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votes", + "nodeType": "MemberAccess", + "referencedDeclaration": 32, + "src": "8984:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 439, + "id": 532, + "nodeType": "Return", + "src": "8977:15:0" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 504, + "name": "upper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 499, + "src": "8748:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 505, + "name": "lower", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 495, + "src": "8756:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "8748:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 553, + "nodeType": "WhileStatement", + "src": "8741:418:0" + }, + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 554, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "9175:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))" + } + }, + "id": 556, + "indexExpression": { + "argumentTypes": null, + "id": 555, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 433, + "src": "9187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9175:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$", + "typeString": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + } + }, + "id": 558, + "indexExpression": { + "argumentTypes": null, + "id": 557, + "name": "lower", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 495, + "src": "9196:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9175:27:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$33_storage", + "typeString": "struct Comp.Checkpoint storage ref" + } + }, + "id": 559, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votes", + "nodeType": "MemberAccess", + "referencedDeclaration": 32, + "src": "9175:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 439, + "id": 560, + "nodeType": "Return", + "src": "9168:40:0" + } + ] + }, + "documentation": "@notice Determine the prior number of votes for an account as of a block number\n@dev Block number must be a finalized block or else this function will revert to prevent misinformation.\n@param account The address of the account to check\n@param blockNumber The block number to get the vote balance at\n@return The number of votes the account had as of the given block", + "id": 562, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPriorVotes", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 436, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 433, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 562, + "src": "8052:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 432, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8052:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 435, + "name": "blockNumber", + "nodeType": "VariableDeclaration", + "scope": 562, + "src": "8069:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 434, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8069:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8051:35:0" + }, + "returnParameters": { + "id": 439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 438, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 562, + "src": "8108:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 437, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "8108:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8107:8:0" + }, + "scope": 957, + "src": "8029:1186:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 599, + "nodeType": "Block", + "src": "9287:301:0", + "statements": [ + { + "assignments": [ + 570 + ], + "declarations": [ + { + "constant": false, + "id": 570, + "name": "currentDelegate", + "nodeType": "VariableDeclaration", + "scope": 599, + "src": "9297:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 569, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9297:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 574, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 571, + "name": "delegates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "9323:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 573, + "indexExpression": { + "argumentTypes": null, + "id": 572, + "name": "delegator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 564, + "src": "9333:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9323:20:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9297:46:0" + }, + { + "assignments": [ + 576 + ], + "declarations": [ + { + "constant": false, + "id": 576, + "name": "delegatorBalance", + "nodeType": "VariableDeclaration", + "scope": 599, + "src": "9353:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 575, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "9353:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 580, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 577, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "9379:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 579, + "indexExpression": { + "argumentTypes": null, + "id": 578, + "name": "delegator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 564, + "src": "9388:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9379:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9353:45:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 581, + "name": "delegates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "9408:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 583, + "indexExpression": { + "argumentTypes": null, + "id": 582, + "name": "delegator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 564, + "src": "9418:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9408:20:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 584, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 566, + "src": "9431:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9408:32:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 586, + "nodeType": "ExpressionStatement", + "src": "9408:32:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 588, + "name": "delegator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 564, + "src": "9472:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 589, + "name": "currentDelegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 570, + "src": "9483:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 590, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 566, + "src": "9500:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 587, + "name": "DelegateChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "9456:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address,address)" + } + }, + "id": 591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9456:54:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 592, + "nodeType": "EmitStatement", + "src": "9451:59:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 594, + "name": "currentDelegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 570, + "src": "9536:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 595, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 566, + "src": "9553:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 596, + "name": "delegatorBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 576, + "src": "9564:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 593, + "name": "_moveDelegates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 775, + "src": "9521:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint96_$returns$__$", + "typeString": "function (address,address,uint96)" + } + }, + "id": 597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9521:60:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 598, + "nodeType": "ExpressionStatement", + "src": "9521:60:0" + } + ] + }, + "documentation": null, + "id": 600, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_delegate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 564, + "name": "delegator", + "nodeType": "VariableDeclaration", + "scope": 600, + "src": "9240:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 563, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9240:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 566, + "name": "delegatee", + "nodeType": "VariableDeclaration", + "scope": 600, + "src": "9259:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9259:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9239:38:0" + }, + "returnParameters": { + "id": 568, + "nodeType": "ParameterList", + "parameters": [], + "src": "9287:0:0" + }, + "scope": 957, + "src": "9221:367:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 667, + "nodeType": "Block", + "src": "9669:530:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 610, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "9687:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9702:1:0", + "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": 611, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9694:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 613, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9694:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9687:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "436f6d703a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207472616e736665722066726f6d20746865207a65726f2061646472657373", + "id": 615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9706:62:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a1f9ee8b9464145aa6c6c80f5dd3de0ed75b63050c7ed5dda64f4dfa66ae889e", + "typeString": "literal_string \"Comp::_transferTokens: cannot transfer from the zero address\"" + }, + "value": "Comp::_transferTokens: cannot transfer from the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a1f9ee8b9464145aa6c6c80f5dd3de0ed75b63050c7ed5dda64f4dfa66ae889e", + "typeString": "literal_string \"Comp::_transferTokens: cannot transfer from the zero address\"" + } + ], + "id": 609, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "9679:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9679:90:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 617, + "nodeType": "ExpressionStatement", + "src": "9679:90:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 619, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 604, + "src": "9787:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9802:1:0", + "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": 620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9794:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9794:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9787:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "436f6d703a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9806:60:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6dfd73e095121fac86dfcecda88ee2e5a2c4c80da47692a4520dec08a942eef4", + "typeString": "literal_string \"Comp::_transferTokens: cannot transfer to the zero address\"" + }, + "value": "Comp::_transferTokens: cannot transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6dfd73e095121fac86dfcecda88ee2e5a2c4c80da47692a4520dec08a942eef4", + "typeString": "literal_string \"Comp::_transferTokens: cannot transfer to the zero address\"" + } + ], + "id": 618, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "9779:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9779:88:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 626, + "nodeType": "ExpressionStatement", + "src": "9779:88:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 627, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "9878:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 629, + "indexExpression": { + "argumentTypes": null, + "id": 628, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "9887:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9878:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 631, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "9900:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 633, + "indexExpression": { + "argumentTypes": null, + "id": 632, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "9909:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9900:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "argumentTypes": null, + "id": 634, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 606, + "src": "9915:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "argumentTypes": null, + "hexValue": "436f6d703a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365", + "id": 635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9923:56:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_20f75e61dae66bd43cc4d6e74412a2a0dfc4c34b4746776eb4e12c627179461c", + "typeString": "literal_string \"Comp::_transferTokens: transfer amount exceeds balance\"" + }, + "value": "Comp::_transferTokens: transfer amount exceeds balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_stringliteral_20f75e61dae66bd43cc4d6e74412a2a0dfc4c34b4746776eb4e12c627179461c", + "typeString": "literal_string \"Comp::_transferTokens: transfer amount exceeds balance\"" + } + ], + "id": 630, + "name": "sub96", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "9894:5:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint96_$_t_uint96_$_t_string_memory_ptr_$returns$_t_uint96_$", + "typeString": "function (uint96,uint96,string memory) pure returns (uint96)" + } + }, + "id": 636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9894:86:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "9878:102:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "id": 638, + "nodeType": "ExpressionStatement", + "src": "9878:102:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 639, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "9990:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 641, + "indexExpression": { + "argumentTypes": null, + "id": 640, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 604, + "src": "9999:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9990:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 643, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "10012:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 645, + "indexExpression": { + "argumentTypes": null, + "id": 644, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 604, + "src": "10021:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10012:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "argumentTypes": null, + "id": 646, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 606, + "src": "10027:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "argumentTypes": null, + "hexValue": "436f6d703a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773", + "id": 647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10035:50:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_838ec7826d8a7e194a0b4c14b8572b8a97cbf1ec9a1dd8f0dc2ca0dbf889365c", + "typeString": "literal_string \"Comp::_transferTokens: transfer amount overflows\"" + }, + "value": "Comp::_transferTokens: transfer amount overflows" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_stringliteral_838ec7826d8a7e194a0b4c14b8572b8a97cbf1ec9a1dd8f0dc2ca0dbf889365c", + "typeString": "literal_string \"Comp::_transferTokens: transfer amount overflows\"" + } + ], + "id": 642, + "name": "add96", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 921, + "src": "10006:5:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint96_$_t_uint96_$_t_string_memory_ptr_$returns$_t_uint96_$", + "typeString": "function (uint96,uint96,string memory) pure returns (uint96)" + } + }, + "id": 648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10006:80:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "9990:96:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "id": 650, + "nodeType": "ExpressionStatement", + "src": "9990:96:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 652, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "10110:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 653, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 604, + "src": "10115:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 654, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 606, + "src": "10120:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 651, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 81, + "src": "10101:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10101:26:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 656, + "nodeType": "EmitStatement", + "src": "10096:31:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 658, + "name": "delegates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "10153:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 660, + "indexExpression": { + "argumentTypes": null, + "id": 659, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "10163:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10153:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 661, + "name": "delegates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "10169:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 663, + "indexExpression": { + "argumentTypes": null, + "id": 662, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 604, + "src": "10179:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10169:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 664, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 606, + "src": "10185:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 657, + "name": "_moveDelegates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 775, + "src": "10138:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint96_$returns$__$", + "typeString": "function (address,address,uint96)" + } + }, + "id": 665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10138:54:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 666, + "nodeType": "ExpressionStatement", + "src": "10138:54:0" + } + ] + }, + "documentation": null, + "id": 668, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 607, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 602, + "name": "src", + "nodeType": "VariableDeclaration", + "scope": 668, + "src": "9619:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 601, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9619:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 604, + "name": "dst", + "nodeType": "VariableDeclaration", + "scope": 668, + "src": "9632:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 603, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9632:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 606, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 668, + "src": "9645:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 605, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "9645:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9618:41:0" + }, + "returnParameters": { + "id": 608, + "nodeType": "ParameterList", + "parameters": [], + "src": "9669:0:0" + }, + "scope": 957, + "src": "9594:605:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 774, + "nodeType": "Block", + "src": "10285:843:0", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 677, + "name": "srcRep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 670, + "src": "10299:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 678, + "name": "dstRep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 672, + "src": "10309:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10299:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "id": 682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 680, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 674, + "src": "10319:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10328:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10319:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10299:30:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 773, + "nodeType": "IfStatement", + "src": "10295:827:0", + "trueBody": { + "id": 772, + "nodeType": "Block", + "src": "10331:791:0", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 684, + "name": "srcRep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 670, + "src": "10349:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10367:1:0", + "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": 685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10359:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 687, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10359:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10349:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 727, + "nodeType": "IfStatement", + "src": "10345:377:0", + "trueBody": { + "id": 726, + "nodeType": "Block", + "src": "10371:351:0", + "statements": [ + { + "assignments": [ + 690 + ], + "declarations": [ + { + "constant": false, + "id": 690, + "name": "srcRepNum", + "nodeType": "VariableDeclaration", + "scope": 726, + "src": "10389:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 689, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "10389:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 694, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 691, + "name": "numCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "10408:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$", + "typeString": "mapping(address => uint32)" + } + }, + "id": 693, + "indexExpression": { + "argumentTypes": null, + "id": 692, + "name": "srcRep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 670, + "src": "10423:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10408:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10389:41:0" + }, + { + "assignments": [ + 696 + ], + "declarations": [ + { + "constant": false, + "id": 696, + "name": "srcRepOld", + "nodeType": "VariableDeclaration", + "scope": 726, + "src": "10448:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 695, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "10448:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 710, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 697, + "name": "srcRepNum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 690, + "src": "10467:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10479:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10467:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 708, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10526:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "10467:60:0", + "trueExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 700, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "10483:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))" + } + }, + "id": 702, + "indexExpression": { + "argumentTypes": null, + "id": 701, + "name": "srcRep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 670, + "src": "10495:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10483:19:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$", + "typeString": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + } + }, + "id": 706, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 703, + "name": "srcRepNum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 690, + "src": "10503:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10515:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10503:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10483:34:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$33_storage", + "typeString": "struct Comp.Checkpoint storage ref" + } + }, + "id": 707, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votes", + "nodeType": "MemberAccess", + "referencedDeclaration": 32, + "src": "10483:40:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10448:79:0" + }, + { + "assignments": [ + 712 + ], + "declarations": [ + { + "constant": false, + "id": 712, + "name": "srcRepNew", + "nodeType": "VariableDeclaration", + "scope": 726, + "src": "10545:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 711, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "10545:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 718, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 714, + "name": "srcRepOld", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 696, + "src": "10570:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "argumentTypes": null, + "id": 715, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 674, + "src": "10581:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "argumentTypes": null, + "hexValue": "436f6d703a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773", + "id": 716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10589:42:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_79bf2f3c2009651b33d37efb8a65657c3e203b2c36f61068863922cb9e64a77a", + "typeString": "literal_string \"Comp::_moveVotes: vote amount underflows\"" + }, + "value": "Comp::_moveVotes: vote amount underflows" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_stringliteral_79bf2f3c2009651b33d37efb8a65657c3e203b2c36f61068863922cb9e64a77a", + "typeString": "literal_string \"Comp::_moveVotes: vote amount underflows\"" + } + ], + "id": 713, + "name": "sub96", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "10564:5:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint96_$_t_uint96_$_t_string_memory_ptr_$returns$_t_uint96_$", + "typeString": "function (uint96,uint96,string memory) pure returns (uint96)" + } + }, + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10564:68:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10545:87:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 720, + "name": "srcRep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 670, + "src": "10667:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 721, + "name": "srcRepNum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 690, + "src": "10675:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 722, + "name": "srcRepOld", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 696, + "src": "10686:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "argumentTypes": null, + "id": 723, + "name": "srcRepNew", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 712, + "src": "10697:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 719, + "name": "_writeCheckpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 848, + "src": "10650:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint32_$_t_uint96_$_t_uint96_$returns$__$", + "typeString": "function (address,uint32,uint96,uint96)" + } + }, + "id": 724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10650:57:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 725, + "nodeType": "ExpressionStatement", + "src": "10650:57:0" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 728, + "name": "dstRep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 672, + "src": "10740:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 730, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10758:1:0", + "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": 729, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10750:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 731, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10750:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10740:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 771, + "nodeType": "IfStatement", + "src": "10736:376:0", + "trueBody": { + "id": 770, + "nodeType": "Block", + "src": "10762:350:0", + "statements": [ + { + "assignments": [ + 734 + ], + "declarations": [ + { + "constant": false, + "id": 734, + "name": "dstRepNum", + "nodeType": "VariableDeclaration", + "scope": 770, + "src": "10780:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 733, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "10780:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 738, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 735, + "name": "numCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "10799:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$", + "typeString": "mapping(address => uint32)" + } + }, + "id": 737, + "indexExpression": { + "argumentTypes": null, + "id": 736, + "name": "dstRep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 672, + "src": "10814:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10799:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10780:41:0" + }, + { + "assignments": [ + 740 + ], + "declarations": [ + { + "constant": false, + "id": 740, + "name": "dstRepOld", + "nodeType": "VariableDeclaration", + "scope": 770, + "src": "10839:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 739, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "10839:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 754, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 741, + "name": "dstRepNum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 734, + "src": "10858:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10870:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10858:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 752, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10917:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "10858:60:0", + "trueExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 744, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "10874:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))" + } + }, + "id": 746, + "indexExpression": { + "argumentTypes": null, + "id": 745, + "name": "dstRep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 672, + "src": "10886:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10874:19:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$", + "typeString": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + } + }, + "id": 750, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 747, + "name": "dstRepNum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 734, + "src": "10894:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10906:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10894:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10874:34:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$33_storage", + "typeString": "struct Comp.Checkpoint storage ref" + } + }, + "id": 751, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votes", + "nodeType": "MemberAccess", + "referencedDeclaration": 32, + "src": "10874:40:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10839:79:0" + }, + { + "assignments": [ + 756 + ], + "declarations": [ + { + "constant": false, + "id": 756, + "name": "dstRepNew", + "nodeType": "VariableDeclaration", + "scope": 770, + "src": "10936:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 755, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "10936:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 762, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 758, + "name": "dstRepOld", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 740, + "src": "10961:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "argumentTypes": null, + "id": 759, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 674, + "src": "10972:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "argumentTypes": null, + "hexValue": "436f6d703a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773", + "id": 760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10980:41:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cac5f7635b67aba587752f385d4aaa6fe7d1615e382cd95e6c1ae76525be695e", + "typeString": "literal_string \"Comp::_moveVotes: vote amount overflows\"" + }, + "value": "Comp::_moveVotes: vote amount overflows" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_stringliteral_cac5f7635b67aba587752f385d4aaa6fe7d1615e382cd95e6c1ae76525be695e", + "typeString": "literal_string \"Comp::_moveVotes: vote amount overflows\"" + } + ], + "id": 757, + "name": "add96", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 921, + "src": "10955:5:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint96_$_t_uint96_$_t_string_memory_ptr_$returns$_t_uint96_$", + "typeString": "function (uint96,uint96,string memory) pure returns (uint96)" + } + }, + "id": 761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10955:67:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10936:86:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 764, + "name": "dstRep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 672, + "src": "11057:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 765, + "name": "dstRepNum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 734, + "src": "11065:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 766, + "name": "dstRepOld", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 740, + "src": "11076:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "argumentTypes": null, + "id": 767, + "name": "dstRepNew", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 756, + "src": "11087:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 763, + "name": "_writeCheckpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 848, + "src": "11040:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint32_$_t_uint96_$_t_uint96_$returns$__$", + "typeString": "function (address,uint32,uint96,uint96)" + } + }, + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11040:57:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 769, + "nodeType": "ExpressionStatement", + "src": "11040:57:0" + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 775, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_moveDelegates", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 670, + "name": "srcRep", + "nodeType": "VariableDeclaration", + "scope": 775, + "src": "10229:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 669, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10229:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 672, + "name": "dstRep", + "nodeType": "VariableDeclaration", + "scope": 775, + "src": "10245:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10245:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 674, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 775, + "src": "10261:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 673, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "10261:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10228:47:0" + }, + "returnParameters": { + "id": 676, + "nodeType": "ParameterList", + "parameters": [], + "src": "10285:0:0" + }, + "scope": 957, + "src": "10205:923:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 847, + "nodeType": "Block", + "src": "11243:509:0", + "statements": [ + { + "assignments": [ + 787 + ], + "declarations": [ + { + "constant": false, + "id": 787, + "name": "blockNumber", + "nodeType": "VariableDeclaration", + "scope": 847, + "src": "11251:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 786, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11251:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 793, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 789, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3345, + "src": "11279:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11279:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "436f6d703a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473", + "id": 791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11293:54:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6426c6c63f7c8daecf0b8a35bfe8c0f43dc9621d39cb2bf0c2cd35cc9db8742f", + "typeString": "literal_string \"Comp::_writeCheckpoint: block number exceeds 32 bits\"" + }, + "value": "Comp::_writeCheckpoint: block number exceeds 32 bits" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_6426c6c63f7c8daecf0b8a35bfe8c0f43dc9621d39cb2bf0c2cd35cc9db8742f", + "typeString": "literal_string \"Comp::_writeCheckpoint: block number exceeds 32 bits\"" + } + ], + "id": 788, + "name": "safe32", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "11272:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint32_$", + "typeString": "function (uint256,string memory) pure returns (uint32)" + } + }, + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11272:76:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11251:97:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 794, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "11361:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 795, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11376:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11361:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 797, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "11381:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))" + } + }, + "id": 799, + "indexExpression": { + "argumentTypes": null, + "id": 798, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "11393:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11381:22:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$", + "typeString": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + } + }, + "id": 803, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 800, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "11404:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 801, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11419:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11404:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11381:40:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$33_storage", + "typeString": "struct Comp.Checkpoint storage ref" + } + }, + "id": 804, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fromBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 30, + "src": "11381:50:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 805, + "name": "blockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 787, + "src": "11435:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "11381:65:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11361:85:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 839, + "nodeType": "Block", + "src": "11532:149:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 820, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "11544:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))" + } + }, + "id": 823, + "indexExpression": { + "argumentTypes": null, + "id": 821, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "11556:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11544:22:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$", + "typeString": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + } + }, + "id": 824, + "indexExpression": { + "argumentTypes": null, + "id": 822, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "11567:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11544:36:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$33_storage", + "typeString": "struct Comp.Checkpoint storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 826, + "name": "blockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 787, + "src": "11594:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 827, + "name": "newVotes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 783, + "src": "11607:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 825, + "name": "Checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33, + "src": "11583:10:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Checkpoint_$33_storage_ptr_$", + "typeString": "type(struct Comp.Checkpoint storage pointer)" + } + }, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11583:33:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$33_memory", + "typeString": "struct Comp.Checkpoint memory" + } + }, + "src": "11544:72:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$33_storage", + "typeString": "struct Comp.Checkpoint storage ref" + } + }, + "id": 830, + "nodeType": "ExpressionStatement", + "src": "11544:72:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 831, + "name": "numCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "11628:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$", + "typeString": "mapping(address => uint32)" + } + }, + "id": 833, + "indexExpression": { + "argumentTypes": null, + "id": 832, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "11643:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11628:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 834, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "11656:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11671:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11656:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "11628:44:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 838, + "nodeType": "ExpressionStatement", + "src": "11628:44:0" + } + ] + }, + "id": 840, + "nodeType": "IfStatement", + "src": "11357:324:0", + "trueBody": { + "id": 819, + "nodeType": "Block", + "src": "11448:78:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 808, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "11460:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))" + } + }, + "id": 813, + "indexExpression": { + "argumentTypes": null, + "id": 809, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "11472:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11460:22:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$33_storage_$", + "typeString": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + } + }, + "id": 814, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 810, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "11483:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11498:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11483:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11460:40:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$33_storage", + "typeString": "struct Comp.Checkpoint storage ref" + } + }, + "id": 815, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "votes", + "nodeType": "MemberAccess", + "referencedDeclaration": 32, + "src": "11460:46:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 816, + "name": "newVotes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 783, + "src": "11509:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "11460:57:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "id": 818, + "nodeType": "ExpressionStatement", + "src": "11460:57:0" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 842, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "11715:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 843, + "name": "oldVotes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 781, + "src": "11726:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "argumentTypes": null, + "id": 844, + "name": "newVotes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 783, + "src": "11736:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 841, + "name": "DelegateVotesChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 73, + "src": "11694:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11694:51:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 846, + "nodeType": "EmitStatement", + "src": "11689:56:0" + } + ] + }, + "documentation": null, + "id": 848, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_writeCheckpoint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 777, + "name": "delegatee", + "nodeType": "VariableDeclaration", + "scope": 848, + "src": "11160:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 776, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11160:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 779, + "name": "nCheckpoints", + "nodeType": "VariableDeclaration", + "scope": 848, + "src": "11179:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 778, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11179:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 781, + "name": "oldVotes", + "nodeType": "VariableDeclaration", + "scope": 848, + "src": "11200:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 780, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "11200:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 783, + "name": "newVotes", + "nodeType": "VariableDeclaration", + "scope": 848, + "src": "11217:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 782, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "11217:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11159:74:0" + }, + "returnParameters": { + "id": 785, + "nodeType": "ParameterList", + "parameters": [], + "src": "11243:0:0" + }, + "scope": 957, + "src": "11134:618:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 870, + "nodeType": "Block", + "src": "11841:75:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 858, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 850, + "src": "11859:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11863:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11866:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11863:5:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "11859:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 863, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "11870:12:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 857, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "11851:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11851:32:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 865, + "nodeType": "ExpressionStatement", + "src": "11851:32:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 867, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 850, + "src": "11907:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 866, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11900:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11900:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 856, + "id": 869, + "nodeType": "Return", + "src": "11893:16:0" + } + ] + }, + "documentation": null, + "id": 871, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safe32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 853, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 850, + "name": "n", + "nodeType": "VariableDeclaration", + "scope": 871, + "src": "11774:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 849, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11774:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 852, + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 871, + "src": "11782:26:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 851, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "11782:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11773:36:0" + }, + "returnParameters": { + "id": 856, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 855, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 871, + "src": "11833:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 854, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11833:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11832:8:0" + }, + "scope": 957, + "src": "11758:158:0", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 893, + "nodeType": "Block", + "src": "12005:75:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 881, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "12023:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_79228162514264337593543950336_by_1", + "typeString": "int_const 79228162514264337593543950336" + }, + "id": 884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 882, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12027:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3936", + "id": 883, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12030:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + "value": "96" + }, + "src": "12027:5:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_79228162514264337593543950336_by_1", + "typeString": "int_const 79228162514264337593543950336" + } + }, + "src": "12023:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 886, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 875, + "src": "12034:12:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 880, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "12015:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12015:32:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 888, + "nodeType": "ExpressionStatement", + "src": "12015:32:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 890, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "12071:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 889, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12064:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + }, + "typeName": "uint96" + }, + "id": 891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12064:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 879, + "id": 892, + "nodeType": "Return", + "src": "12057:16:0" + } + ] + }, + "documentation": null, + "id": 894, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safe96", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 876, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 873, + "name": "n", + "nodeType": "VariableDeclaration", + "scope": 894, + "src": "11938:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 872, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11938:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 875, + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 894, + "src": "11946:26:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 874, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "11946:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11937:36:0" + }, + "returnParameters": { + "id": 879, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 878, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 894, + "src": "11997:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 877, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "11997:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11996:8:0" + }, + "scope": 957, + "src": "11922:158:0", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 920, + "nodeType": "Block", + "src": "12180:90:0", + "statements": [ + { + "assignments": [ + 906 + ], + "declarations": [ + { + "constant": false, + "id": 906, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 920, + "src": "12190:8:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 905, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "12190:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 910, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "id": 909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 907, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 896, + "src": "12201:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 908, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 898, + "src": "12205:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "12201:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12190:16:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "id": 914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 912, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 906, + "src": "12224:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 913, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 896, + "src": "12229:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "12224:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 915, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 900, + "src": "12232:12:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 911, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "12216:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12216:29:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 917, + "nodeType": "ExpressionStatement", + "src": "12216:29:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 918, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 906, + "src": "12262:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 904, + "id": 919, + "nodeType": "Return", + "src": "12255:8:0" + } + ] + }, + "documentation": null, + "id": 921, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add96", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 896, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 921, + "src": "12101:8:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 895, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "12101:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 898, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 921, + "src": "12111:8:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 897, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "12111:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 900, + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 921, + "src": "12121:26:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 899, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "12121:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12100:48:0" + }, + "returnParameters": { + "id": 904, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 903, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 921, + "src": "12172:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 902, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "12172:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12171:8:0" + }, + "scope": 957, + "src": "12086:184:0", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 943, + "nodeType": "Block", + "src": "12370:68:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "id": 935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 933, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 925, + "src": "12388:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 934, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 923, + "src": "12393:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "12388:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 936, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "12396:12:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 932, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "12380:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12380:29:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 938, + "nodeType": "ExpressionStatement", + "src": "12380:29:0" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "id": 941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 939, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 923, + "src": "12426:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 940, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 925, + "src": "12430:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "12426:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 931, + "id": 942, + "nodeType": "Return", + "src": "12419:12:0" + } + ] + }, + "documentation": null, + "id": 944, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub96", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 928, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 923, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 944, + "src": "12291:8:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 922, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "12291:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 925, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 944, + "src": "12301:8:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 924, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "12301:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 927, + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 944, + "src": "12311:26:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 926, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "12311:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12290:48:0" + }, + "returnParameters": { + "id": 931, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 930, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 944, + "src": "12362:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 929, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "12362:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12361:8:0" + }, + "scope": 957, + "src": "12276:162:0", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 955, + "nodeType": "Block", + "src": "12495:98:0", + "statements": [ + { + "assignments": [ + 950 + ], + "declarations": [ + { + "constant": false, + "id": 950, + "name": "chainId", + "nodeType": "VariableDeclaration", + "scope": 955, + "src": "12505:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 949, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12505:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 951, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "12505:15:0" + }, + { + "externalReferences": [ + { + "chainId": { + "declaration": 950, + "isOffset": false, + "isSlot": false, + "src": "12541:7:0", + "valueSize": 1 + } + } + ], + "id": 952, + "nodeType": "InlineAssembly", + "operations": "{ chainId := chainid() }", + "src": "12530:33:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 953, + "name": "chainId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 950, + "src": "12579:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 948, + "id": 954, + "nodeType": "Return", + "src": "12572:14:0" + } + ] + }, + "documentation": null, + "id": 956, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getChainId", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 945, + "nodeType": "ParameterList", + "parameters": [], + "src": "12463:2:0" + }, + "returnParameters": { + "id": 948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 947, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 956, + "src": "12489:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 946, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12489:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12488:6:0" + }, + "scope": 957, + "src": "12444:149:0", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 958, + "src": "60:12535:0" + } + ], + "src": "0:12596:0" + }, + "legacyAST": { + "attributes": { + "absolutePath": "project:/contracts/Comp.sol", + "exportedSymbols": { + "Comp": [ + 957 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.5", + ".16" + ] + }, + "id": 1, + "name": "PragmaDirective", + "src": "0:24:0" + }, + { + "attributes": { + "literals": [ + "experimental", + "ABIEncoderV2" + ] + }, + "id": 2, + "name": "PragmaDirective", + "src": "25:33:0" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 957 + ], + "name": "Comp", + "scope": 958 + }, + "children": [ + { + "attributes": { + "constant": true, + "name": "name", + "scope": 957, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3, + "name": "ElementaryTypeName", + "src": "129:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "436f6d706f756e64", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Compound\"", + "value": "Compound" + }, + "id": 4, + "name": "Literal", + "src": "159:10:0" + } + ], + "id": 5, + "name": "VariableDeclaration", + "src": "129:40:0" + }, + { + "attributes": { + "constant": true, + "name": "symbol", + "scope": 957, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 6, + "name": "ElementaryTypeName", + "src": "227:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "434f4d50", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"COMP\"", + "value": "COMP" + }, + "id": 7, + "name": "Literal", + "src": "259:6:0" + } + ], + "id": 8, + "name": "VariableDeclaration", + "src": "227:38:0" + }, + { + "attributes": { + "constant": true, + "name": "decimals", + "scope": 957, + "stateVariable": true, + "storageLocation": "default", + "type": "uint8", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 9, + "name": "ElementaryTypeName", + "src": "325:5:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "3138", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 18", + "value": "18" + }, + "id": 10, + "name": "Literal", + "src": "358:2:0" + } + ], + "id": 11, + "name": "VariableDeclaration", + "src": "325:35:0" + }, + { + "attributes": { + "constant": true, + "name": "totalSupply", + "scope": 957, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 12, + "name": "ElementaryTypeName", + "src": "421:4:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "3130303030303030653138", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 10000000000000000000000000", + "value": "10000000e18" + }, + "id": 13, + "name": "Literal", + "src": "456:11:0" + } + ], + "id": 14, + "name": "VariableDeclaration", + "src": "421:46:0" + }, + { + "attributes": { + "constant": false, + "name": "allowances", + "scope": 957, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => mapping(address => uint96))", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => mapping(address => uint96))" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 15, + "name": "ElementaryTypeName", + "src": "556:7:0" + }, + { + "attributes": { + "type": "mapping(address => uint96)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 16, + "name": "ElementaryTypeName", + "src": "576:7:0" + }, + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 17, + "name": "ElementaryTypeName", + "src": "587:6:0" + } + ], + "id": 18, + "name": "Mapping", + "src": "567:27:0" + } + ], + "id": 19, + "name": "Mapping", + "src": "547:48:0" + } + ], + "id": 20, + "name": "VariableDeclaration", + "src": "547:68:0" + }, + { + "attributes": { + "constant": false, + "name": "balances", + "scope": 957, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => uint96)", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => uint96)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 21, + "name": "ElementaryTypeName", + "src": "698:7:0" + }, + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 22, + "name": "ElementaryTypeName", + "src": "709:6:0" + } + ], + "id": 23, + "name": "Mapping", + "src": "689:27:0" + } + ], + "id": 24, + "name": "VariableDeclaration", + "src": "689:45:0" + }, + { + "attributes": { + "constant": false, + "name": "delegates", + "scope": 957, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => address)", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => address)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 25, + "name": "ElementaryTypeName", + "src": "801:7:0" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 26, + "name": "ElementaryTypeName", + "src": "812:7:0" + } + ], + "id": 27, + "name": "Mapping", + "src": "792:28:0" + } + ], + "id": 28, + "name": "VariableDeclaration", + "src": "792:45:0" + }, + { + "attributes": { + "canonicalName": "Comp.Checkpoint", + "name": "Checkpoint", + "scope": 957, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "fromBlock", + "scope": 33, + "stateVariable": false, + "storageLocation": "default", + "type": "uint32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint32", + "type": "uint32" + }, + "id": 29, + "name": "ElementaryTypeName", + "src": "948:6:0" + } + ], + "id": 30, + "name": "VariableDeclaration", + "src": "948:16:0" + }, + { + "attributes": { + "constant": false, + "name": "votes", + "scope": 33, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 31, + "name": "ElementaryTypeName", + "src": "974:6:0" + } + ], + "id": 32, + "name": "VariableDeclaration", + "src": "974:12:0" + } + ], + "id": 33, + "name": "StructDefinition", + "src": "920:73:0" + }, + { + "attributes": { + "constant": false, + "name": "checkpoints", + "scope": 957, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => mapping(uint32 => struct Comp.Checkpoint))", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => mapping(uint32 => struct Comp.Checkpoint))" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 34, + "name": "ElementaryTypeName", + "src": "1081:7:0" + }, + { + "attributes": { + "type": "mapping(uint32 => struct Comp.Checkpoint)" + }, + "children": [ + { + "attributes": { + "name": "uint32", + "type": "uint32" + }, + "id": 35, + "name": "ElementaryTypeName", + "src": "1101:6:0" + }, + { + "attributes": { + "contractScope": null, + "name": "Checkpoint", + "referencedDeclaration": 33, + "type": "struct Comp.Checkpoint" + }, + "id": 36, + "name": "UserDefinedTypeName", + "src": "1111:10:0" + } + ], + "id": 37, + "name": "Mapping", + "src": "1092:30:0" + } + ], + "id": 38, + "name": "Mapping", + "src": "1072:51:0" + } + ], + "id": 39, + "name": "VariableDeclaration", + "src": "1072:70:0" + }, + { + "attributes": { + "constant": false, + "name": "numCheckpoints", + "scope": 957, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => uint32)", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => uint32)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 40, + "name": "ElementaryTypeName", + "src": "1217:7:0" + }, + { + "attributes": { + "name": "uint32", + "type": "uint32" + }, + "id": 41, + "name": "ElementaryTypeName", + "src": "1228:6:0" + } + ], + "id": 42, + "name": "Mapping", + "src": "1208:27:0" + } + ], + "id": 43, + "name": "VariableDeclaration", + "src": "1208:49:0" + }, + { + "attributes": { + "constant": true, + "name": "DOMAIN_TYPEHASH", + "scope": 957, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes32", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 44, + "name": "ElementaryTypeName", + "src": "1327:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866", + "typeString": "literal_string \"EIP712Domain(string name,uint256 chainId,address verifyingContract)\"" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3349, + "type": "function (bytes memory) pure returns (bytes32)", + "value": "keccak256" + }, + "id": 45, + "name": "Identifier", + "src": "1369:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"EIP712Domain(string name,uint256 chainId,address verifyingContract)\"", + "value": "EIP712Domain(string name,uint256 chainId,address verifyingContract)" + }, + "id": 46, + "name": "Literal", + "src": "1379:69:0" + } + ], + "id": 47, + "name": "FunctionCall", + "src": "1369:80:0" + } + ], + "id": 48, + "name": "VariableDeclaration", + "src": "1327:122:0" + }, + { + "attributes": { + "constant": true, + "name": "DELEGATION_TYPEHASH", + "scope": 957, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes32", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 49, + "name": "ElementaryTypeName", + "src": "1540:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_e48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf", + "typeString": "literal_string \"Delegation(address delegatee,uint256 nonce,uint256 expiry)\"" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3349, + "type": "function (bytes memory) pure returns (bytes32)", + "value": "keccak256" + }, + "id": 50, + "name": "Identifier", + "src": "1586:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "44656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e743235362065787069727929", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Delegation(address delegatee,uint256 nonce,uint256 expiry)\"", + "value": "Delegation(address delegatee,uint256 nonce,uint256 expiry)" + }, + "id": 51, + "name": "Literal", + "src": "1596:60:0" + } + ], + "id": 52, + "name": "FunctionCall", + "src": "1586:71:0" + } + ], + "id": 53, + "name": "VariableDeclaration", + "src": "1540:117:0" + }, + { + "attributes": { + "constant": false, + "name": "nonces", + "scope": 957, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => uint256)", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 54, + "name": "ElementaryTypeName", + "src": "1744:7:0" + }, + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 55, + "name": "ElementaryTypeName", + "src": "1755:4:0" + } + ], + "id": 56, + "name": "Mapping", + "src": "1735:25:0" + } + ], + "id": 57, + "name": "VariableDeclaration", + "src": "1735:39:0" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event thats emitted when an account changes its delegate", + "name": "DelegateChanged" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "delegator", + "scope": 65, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 58, + "name": "ElementaryTypeName", + "src": "1879:7:0" + } + ], + "id": 59, + "name": "VariableDeclaration", + "src": "1879:25:0" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "name": "fromDelegate", + "scope": 65, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 60, + "name": "ElementaryTypeName", + "src": "1906:7:0" + } + ], + "id": 61, + "name": "VariableDeclaration", + "src": "1906:28:0" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "name": "toDelegate", + "scope": 65, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 62, + "name": "ElementaryTypeName", + "src": "1936:7:0" + } + ], + "id": 63, + "name": "VariableDeclaration", + "src": "1936:26:0" + } + ], + "id": 64, + "name": "ParameterList", + "src": "1878:85:0" + } + ], + "id": 65, + "name": "EventDefinition", + "src": "1857:107:0" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event thats emitted when a delegate account's vote balance changes", + "name": "DelegateVotesChanged" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "delegate", + "scope": 73, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 66, + "name": "ElementaryTypeName", + "src": "2083:7:0" + } + ], + "id": 67, + "name": "VariableDeclaration", + "src": "2083:24:0" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "previousBalance", + "scope": 73, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 68, + "name": "ElementaryTypeName", + "src": "2109:4:0" + } + ], + "id": 69, + "name": "VariableDeclaration", + "src": "2109:20:0" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newBalance", + "scope": 73, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 70, + "name": "ElementaryTypeName", + "src": "2131:4:0" + } + ], + "id": 71, + "name": "VariableDeclaration", + "src": "2131:15:0" + } + ], + "id": 72, + "name": "ParameterList", + "src": "2082:65:0" + } + ], + "id": 73, + "name": "EventDefinition", + "src": "2056:92:0" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice The standard EIP-20 transfer event", + "name": "Transfer" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "from", + "scope": 81, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 74, + "name": "ElementaryTypeName", + "src": "2220:7:0" + } + ], + "id": 75, + "name": "VariableDeclaration", + "src": "2220:20:0" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "name": "to", + "scope": 81, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 76, + "name": "ElementaryTypeName", + "src": "2242:7:0" + } + ], + "id": 77, + "name": "VariableDeclaration", + "src": "2242:18:0" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "amount", + "scope": 81, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 78, + "name": "ElementaryTypeName", + "src": "2262:7:0" + } + ], + "id": 79, + "name": "VariableDeclaration", + "src": "2262:14:0" + } + ], + "id": 80, + "name": "ParameterList", + "src": "2219:58:0" + } + ], + "id": 81, + "name": "EventDefinition", + "src": "2205:73:0" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice The standard EIP-20 approval event", + "name": "Approval" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "owner", + "scope": 89, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 82, + "name": "ElementaryTypeName", + "src": "2350:7:0" + } + ], + "id": 83, + "name": "VariableDeclaration", + "src": "2350:21:0" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "name": "spender", + "scope": 89, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 84, + "name": "ElementaryTypeName", + "src": "2373:7:0" + } + ], + "id": 85, + "name": "VariableDeclaration", + "src": "2373:23:0" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "amount", + "scope": 89, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 86, + "name": "ElementaryTypeName", + "src": "2398:7:0" + } + ], + "id": 87, + "name": "VariableDeclaration", + "src": "2398:14:0" + } + ], + "id": 88, + "name": "ParameterList", + "src": "2349:64:0" + } + ], + "id": 89, + "name": "EventDefinition", + "src": "2335:79:0" + }, + { + "attributes": { + "documentation": "@notice Construct a new Comp token\n@param account The initial account to grant all the tokens", + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 957, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "account", + "scope": 111, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 90, + "name": "ElementaryTypeName", + "src": "2556:7:0" + } + ], + "id": 91, + "name": "VariableDeclaration", + "src": "2556:15:0" + } + ], + "id": 92, + "name": "ParameterList", + "src": "2555:17:0" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 93, + "name": "ParameterList", + "src": "2580:0:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 24, + "type": "mapping(address => uint96)", + "value": "balances" + }, + "id": 94, + "name": "Identifier", + "src": "2590:8:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 91, + "type": "address", + "value": "account" + }, + "id": 95, + "name": "Identifier", + "src": "2599:7:0" + } + ], + "id": 96, + "name": "IndexAccess", + "src": "2590:17:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint96", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint96)", + "value": "uint96" + }, + "id": 97, + "name": "ElementaryTypeNameExpression", + "src": "2610:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 14, + "type": "uint256", + "value": "totalSupply" + }, + "id": 98, + "name": "Identifier", + "src": "2617:11:0" + } + ], + "id": 99, + "name": "FunctionCall", + "src": "2610:19:0" + } + ], + "id": 100, + "name": "Assignment", + "src": "2590:39:0" + } + ], + "id": 101, + "name": "ExpressionStatement", + "src": "2590:39:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 81, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 102, + "name": "Identifier", + "src": "2644:8:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 103, + "name": "ElementaryTypeNameExpression", + "src": "2653:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 104, + "name": "Literal", + "src": "2661:1:0" + } + ], + "id": 105, + "name": "FunctionCall", + "src": "2653:10:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 91, + "type": "address", + "value": "account" + }, + "id": 106, + "name": "Identifier", + "src": "2665:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 14, + "type": "uint256", + "value": "totalSupply" + }, + "id": 107, + "name": "Identifier", + "src": "2674:11:0" + } + ], + "id": 108, + "name": "FunctionCall", + "src": "2644:42:0" + } + ], + "id": 109, + "name": "EmitStatement", + "src": "2639:47:0" + } + ], + "id": 110, + "name": "Block", + "src": "2580:113:0" + } + ], + "id": 111, + "name": "FunctionDefinition", + "src": "2544:149:0" + }, + { + "attributes": { + "documentation": "@notice Get the number of tokens `spender` is approved to spend on behalf of `account`\n@param account The address of the account holding the funds\n@param spender The address of the account spending the funds\n@return The number of tokens approved", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "allowance", + "scope": 957, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "account", + "scope": 127, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 112, + "name": "ElementaryTypeName", + "src": "3008:7:0" + } + ], + "id": 113, + "name": "VariableDeclaration", + "src": "3008:15:0" + }, + { + "attributes": { + "constant": false, + "name": "spender", + "scope": 127, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 114, + "name": "ElementaryTypeName", + "src": "3025:7:0" + } + ], + "id": 115, + "name": "VariableDeclaration", + "src": "3025:15:0" + } + ], + "id": 116, + "name": "ParameterList", + "src": "3007:34:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 127, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 117, + "name": "ElementaryTypeName", + "src": "3065:4:0" + } + ], + "id": 118, + "name": "VariableDeclaration", + "src": "3065:4:0" + } + ], + "id": 119, + "name": "ParameterList", + "src": "3064:6:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 119 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => uint96)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 20, + "type": "mapping(address => mapping(address => uint96))", + "value": "allowances" + }, + "id": 120, + "name": "Identifier", + "src": "3088:10:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 113, + "type": "address", + "value": "account" + }, + "id": 121, + "name": "Identifier", + "src": "3099:7:0" + } + ], + "id": 122, + "name": "IndexAccess", + "src": "3088:19:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 115, + "type": "address", + "value": "spender" + }, + "id": 123, + "name": "Identifier", + "src": "3108:7:0" + } + ], + "id": 124, + "name": "IndexAccess", + "src": "3088:28:0" + } + ], + "id": 125, + "name": "Return", + "src": "3081:35:0" + } + ], + "id": 126, + "name": "Block", + "src": "3071:52:0" + } + ], + "id": 127, + "name": "FunctionDefinition", + "src": "2989:134:0" + }, + { + "attributes": { + "documentation": "@notice Approve `spender` to transfer up to `amount` from `src`\n@dev This will overwrite the approval amount for `spender`\n and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve)\n@param spender The address of the account which may transfer tokens\n@param rawAmount The number of tokens that are approved (2^256-1 means infinite)\n@return Whether or not the approval succeeded", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 957, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "spender", + "scope": 181, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 128, + "name": "ElementaryTypeName", + "src": "3608:7:0" + } + ], + "id": 129, + "name": "VariableDeclaration", + "src": "3608:15:0" + }, + { + "attributes": { + "constant": false, + "name": "rawAmount", + "scope": 181, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 130, + "name": "ElementaryTypeName", + "src": "3625:4:0" + } + ], + "id": 131, + "name": "VariableDeclaration", + "src": "3625:14:0" + } + ], + "id": 132, + "name": "ParameterList", + "src": "3607:33:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 181, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 133, + "name": "ElementaryTypeName", + "src": "3659:4:0" + } + ], + "id": 134, + "name": "VariableDeclaration", + "src": "3659:4:0" + } + ], + "id": 135, + "name": "ParameterList", + "src": "3658:6:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 137 + ], + "initialValue": null + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "amount", + "scope": 180, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 136, + "name": "ElementaryTypeName", + "src": "3675:6:0" + } + ], + "id": 137, + "name": "VariableDeclaration", + "src": "3675:13:0" + } + ], + "id": 138, + "name": "VariableDeclarationStatement", + "src": "3675:13:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 131, + "type": "uint256", + "value": "rawAmount" + }, + "id": 139, + "name": "Identifier", + "src": "3702:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)", + "value": "uint" + }, + "id": 140, + "name": "ElementaryTypeNameExpression", + "src": "3715:4:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "operator": "-", + "prefix": true, + "type": "int_const -1" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 141, + "name": "Literal", + "src": "3721:1:0" + } + ], + "id": 142, + "name": "UnaryOperation", + "src": "3720:2:0" + } + ], + "id": 143, + "name": "FunctionCall", + "src": "3715:8:0" + } + ], + "id": 144, + "name": "BinaryOperation", + "src": "3702:21:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 137, + "type": "uint96", + "value": "amount" + }, + "id": 145, + "name": "Identifier", + "src": "3739:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint96", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint96)", + "value": "uint96" + }, + "id": 146, + "name": "ElementaryTypeNameExpression", + "src": "3748:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "operator": "-", + "prefix": true, + "type": "int_const -1" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 147, + "name": "Literal", + "src": "3756:1:0" + } + ], + "id": 148, + "name": "UnaryOperation", + "src": "3755:2:0" + } + ], + "id": 149, + "name": "FunctionCall", + "src": "3748:10:0" + } + ], + "id": 150, + "name": "Assignment", + "src": "3739:19:0" + } + ], + "id": 151, + "name": "ExpressionStatement", + "src": "3739:19:0" + } + ], + "id": 152, + "name": "Block", + "src": "3725:44:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 137, + "type": "uint96", + "value": "amount" + }, + "id": 153, + "name": "Identifier", + "src": "3789:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint96", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_32dab9ece0397c38c85244ed755f6110088fb13d43a7e9d6809da7619813d0fe", + "typeString": "literal_string \"Comp::approve: amount exceeds 96 bits\"" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 894, + "type": "function (uint256,string memory) pure returns (uint96)", + "value": "safe96" + }, + "id": 154, + "name": "Identifier", + "src": "3798:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 131, + "type": "uint256", + "value": "rawAmount" + }, + "id": 155, + "name": "Identifier", + "src": "3805:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "436f6d703a3a617070726f76653a20616d6f756e7420657863656564732039362062697473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Comp::approve: amount exceeds 96 bits\"", + "value": "Comp::approve: amount exceeds 96 bits" + }, + "id": 156, + "name": "Literal", + "src": "3816:39:0" + } + ], + "id": 157, + "name": "FunctionCall", + "src": "3798:58:0" + } + ], + "id": 158, + "name": "Assignment", + "src": "3789:67:0" + } + ], + "id": 159, + "name": "ExpressionStatement", + "src": "3789:67:0" + } + ], + "id": 160, + "name": "Block", + "src": "3775:92:0" + } + ], + "id": 161, + "name": "IfStatement", + "src": "3698:169:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => uint96)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 20, + "type": "mapping(address => mapping(address => uint96))", + "value": "allowances" + }, + "id": 162, + "name": "Identifier", + "src": "3877:10:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 163, + "name": "Identifier", + "src": "3888:3:0" + } + ], + "id": 164, + "name": "MemberAccess", + "src": "3888:10:0" + } + ], + "id": 166, + "name": "IndexAccess", + "src": "3877:22:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 129, + "type": "address", + "value": "spender" + }, + "id": 165, + "name": "Identifier", + "src": "3900:7:0" + } + ], + "id": 167, + "name": "IndexAccess", + "src": "3877:31:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 137, + "type": "uint96", + "value": "amount" + }, + "id": 168, + "name": "Identifier", + "src": "3911:6:0" + } + ], + "id": 169, + "name": "Assignment", + "src": "3877:40:0" + } + ], + "id": 170, + "name": "ExpressionStatement", + "src": "3877:40:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 89, + "type": "function (address,address,uint256)", + "value": "Approval" + }, + "id": 171, + "name": "Identifier", + "src": "3933:8:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 172, + "name": "Identifier", + "src": "3942:3:0" + } + ], + "id": 173, + "name": "MemberAccess", + "src": "3942:10:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 129, + "type": "address", + "value": "spender" + }, + "id": 174, + "name": "Identifier", + "src": "3954:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 137, + "type": "uint96", + "value": "amount" + }, + "id": 175, + "name": "Identifier", + "src": "3963:6:0" + } + ], + "id": 176, + "name": "FunctionCall", + "src": "3933:37:0" + } + ], + "id": 177, + "name": "EmitStatement", + "src": "3928:42:0" + }, + { + "attributes": { + "functionReturnParameters": 135 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 178, + "name": "Literal", + "src": "3987:4:0" + } + ], + "id": 179, + "name": "Return", + "src": "3980:11:0" + } + ], + "id": 180, + "name": "Block", + "src": "3665:333:0" + } + ], + "id": 181, + "name": "FunctionDefinition", + "src": "3591:407:0" + }, + { + "attributes": { + "documentation": "@notice Get the number of tokens held by the `account`\n@param account The address of the account to get the balance of\n@return The number of tokens held", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 957, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "account", + "scope": 193, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 182, + "name": "ElementaryTypeName", + "src": "4213:7:0" + } + ], + "id": 183, + "name": "VariableDeclaration", + "src": "4213:15:0" + } + ], + "id": 184, + "name": "ParameterList", + "src": "4212:17:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 193, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 185, + "name": "ElementaryTypeName", + "src": "4253:4:0" + } + ], + "id": 186, + "name": "VariableDeclaration", + "src": "4253:4:0" + } + ], + "id": 187, + "name": "ParameterList", + "src": "4252:6:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 187 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 24, + "type": "mapping(address => uint96)", + "value": "balances" + }, + "id": 188, + "name": "Identifier", + "src": "4276:8:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 183, + "type": "address", + "value": "account" + }, + "id": 189, + "name": "Identifier", + "src": "4285:7:0" + } + ], + "id": 190, + "name": "IndexAccess", + "src": "4276:17:0" + } + ], + "id": 191, + "name": "Return", + "src": "4269:24:0" + } + ], + "id": 192, + "name": "Block", + "src": "4259:41:0" + } + ], + "id": 193, + "name": "FunctionDefinition", + "src": "4194:106:0" + }, + { + "attributes": { + "documentation": "@notice Transfer `amount` tokens from `msg.sender` to `dst`\n@param dst The address of the destination account\n@param rawAmount The number of tokens to transfer\n@return Whether or not the transfer succeeded", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transfer", + "scope": 957, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "dst", + "scope": 219, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 194, + "name": "ElementaryTypeName", + "src": "4574:7:0" + } + ], + "id": 195, + "name": "VariableDeclaration", + "src": "4574:11:0" + }, + { + "attributes": { + "constant": false, + "name": "rawAmount", + "scope": 219, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 196, + "name": "ElementaryTypeName", + "src": "4587:4:0" + } + ], + "id": 197, + "name": "VariableDeclaration", + "src": "4587:14:0" + } + ], + "id": 198, + "name": "ParameterList", + "src": "4573:29:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 219, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 199, + "name": "ElementaryTypeName", + "src": "4621:4:0" + } + ], + "id": 200, + "name": "VariableDeclaration", + "src": "4621:4:0" + } + ], + "id": 201, + "name": "ParameterList", + "src": "4620:6:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 203 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "amount", + "scope": 218, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 202, + "name": "ElementaryTypeName", + "src": "4637:6:0" + } + ], + "id": 203, + "name": "VariableDeclaration", + "src": "4637:13:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint96", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_5bdeafae4aaace0ed9b7df6e60f285c9e8e84a3ceac05af6b6259bfed8e161f5", + "typeString": "literal_string \"Comp::transfer: amount exceeds 96 bits\"" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 894, + "type": "function (uint256,string memory) pure returns (uint96)", + "value": "safe96" + }, + "id": 204, + "name": "Identifier", + "src": "4653:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 197, + "type": "uint256", + "value": "rawAmount" + }, + "id": 205, + "name": "Identifier", + "src": "4660:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "436f6d703a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Comp::transfer: amount exceeds 96 bits\"", + "value": "Comp::transfer: amount exceeds 96 bits" + }, + "id": 206, + "name": "Literal", + "src": "4671:40:0" + } + ], + "id": 207, + "name": "FunctionCall", + "src": "4653:59:0" + } + ], + "id": 208, + "name": "VariableDeclarationStatement", + "src": "4637:75:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 668, + "type": "function (address,address,uint96)", + "value": "_transferTokens" + }, + "id": 209, + "name": "Identifier", + "src": "4722:15:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 210, + "name": "Identifier", + "src": "4738:3:0" + } + ], + "id": 211, + "name": "MemberAccess", + "src": "4738:10:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 195, + "type": "address", + "value": "dst" + }, + "id": 212, + "name": "Identifier", + "src": "4750:3:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 203, + "type": "uint96", + "value": "amount" + }, + "id": 213, + "name": "Identifier", + "src": "4755:6:0" + } + ], + "id": 214, + "name": "FunctionCall", + "src": "4722:40:0" + } + ], + "id": 215, + "name": "ExpressionStatement", + "src": "4722:40:0" + }, + { + "attributes": { + "functionReturnParameters": 201 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 216, + "name": "Literal", + "src": "4779:4:0" + } + ], + "id": 217, + "name": "Return", + "src": "4772:11:0" + } + ], + "id": 218, + "name": "Block", + "src": "4627:163:0" + } + ], + "id": 219, + "name": "FunctionDefinition", + "src": "4556:234:0" + }, + { + "attributes": { + "documentation": "@notice Transfer `amount` tokens from `src` to `dst`\n@param src The address of the source account\n@param dst The address of the destination account\n@param rawAmount The number of tokens to transfer\n@return Whether or not the transfer succeeded", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 957, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "src", + "scope": 293, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 220, + "name": "ElementaryTypeName", + "src": "5113:7:0" + } + ], + "id": 221, + "name": "VariableDeclaration", + "src": "5113:11:0" + }, + { + "attributes": { + "constant": false, + "name": "dst", + "scope": 293, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 222, + "name": "ElementaryTypeName", + "src": "5126:7:0" + } + ], + "id": 223, + "name": "VariableDeclaration", + "src": "5126:11:0" + }, + { + "attributes": { + "constant": false, + "name": "rawAmount", + "scope": 293, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 224, + "name": "ElementaryTypeName", + "src": "5139:4:0" + } + ], + "id": 225, + "name": "VariableDeclaration", + "src": "5139:14:0" + } + ], + "id": 226, + "name": "ParameterList", + "src": "5112:42:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 293, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 227, + "name": "ElementaryTypeName", + "src": "5173:4:0" + } + ], + "id": 228, + "name": "VariableDeclaration", + "src": "5173:4:0" + } + ], + "id": 229, + "name": "ParameterList", + "src": "5172:6:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 231 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "spender", + "scope": 292, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 230, + "name": "ElementaryTypeName", + "src": "5189:7:0" + } + ], + "id": 231, + "name": "VariableDeclaration", + "src": "5189:15:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 232, + "name": "Identifier", + "src": "5207:3:0" + } + ], + "id": 233, + "name": "MemberAccess", + "src": "5207:10:0" + } + ], + "id": 234, + "name": "VariableDeclarationStatement", + "src": "5189:28:0" + }, + { + "attributes": { + "assignments": [ + 236 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "spenderAllowance", + "scope": 292, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 235, + "name": "ElementaryTypeName", + "src": "5227:6:0" + } + ], + "id": 236, + "name": "VariableDeclaration", + "src": "5227:23:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => uint96)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 20, + "type": "mapping(address => mapping(address => uint96))", + "value": "allowances" + }, + "id": 237, + "name": "Identifier", + "src": "5253:10:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 221, + "type": "address", + "value": "src" + }, + "id": 238, + "name": "Identifier", + "src": "5264:3:0" + } + ], + "id": 239, + "name": "IndexAccess", + "src": "5253:15:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 231, + "type": "address", + "value": "spender" + }, + "id": 240, + "name": "Identifier", + "src": "5269:7:0" + } + ], + "id": 241, + "name": "IndexAccess", + "src": "5253:24:0" + } + ], + "id": 242, + "name": "VariableDeclarationStatement", + "src": "5227:50:0" + }, + { + "attributes": { + "assignments": [ + 244 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "amount", + "scope": 292, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 243, + "name": "ElementaryTypeName", + "src": "5287:6:0" + } + ], + "id": 244, + "name": "VariableDeclaration", + "src": "5287:13:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint96", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_32dab9ece0397c38c85244ed755f6110088fb13d43a7e9d6809da7619813d0fe", + "typeString": "literal_string \"Comp::approve: amount exceeds 96 bits\"" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 894, + "type": "function (uint256,string memory) pure returns (uint96)", + "value": "safe96" + }, + "id": 245, + "name": "Identifier", + "src": "5303:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 225, + "type": "uint256", + "value": "rawAmount" + }, + "id": 246, + "name": "Identifier", + "src": "5310:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "436f6d703a3a617070726f76653a20616d6f756e7420657863656564732039362062697473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Comp::approve: amount exceeds 96 bits\"", + "value": "Comp::approve: amount exceeds 96 bits" + }, + "id": 247, + "name": "Literal", + "src": "5321:39:0" + } + ], + "id": 248, + "name": "FunctionCall", + "src": "5303:58:0" + } + ], + "id": 249, + "name": "VariableDeclarationStatement", + "src": "5287:74:0" + }, + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "&&", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 231, + "type": "address", + "value": "spender" + }, + "id": 250, + "name": "Identifier", + "src": "5376:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 221, + "type": "address", + "value": "src" + }, + "id": 251, + "name": "Identifier", + "src": "5387:3:0" + } + ], + "id": 252, + "name": "BinaryOperation", + "src": "5376:14:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 236, + "type": "uint96", + "value": "spenderAllowance" + }, + "id": 253, + "name": "Identifier", + "src": "5394:16:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint96", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint96)", + "value": "uint96" + }, + "id": 254, + "name": "ElementaryTypeNameExpression", + "src": "5414:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "operator": "-", + "prefix": true, + "type": "int_const -1" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 255, + "name": "Literal", + "src": "5422:1:0" + } + ], + "id": 256, + "name": "UnaryOperation", + "src": "5421:2:0" + } + ], + "id": 257, + "name": "FunctionCall", + "src": "5414:10:0" + } + ], + "id": 258, + "name": "BinaryOperation", + "src": "5394:30:0" + } + ], + "id": 259, + "name": "BinaryOperation", + "src": "5376:48:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 261 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "newAllowance", + "scope": 282, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 260, + "name": "ElementaryTypeName", + "src": "5440:6:0" + } + ], + "id": 261, + "name": "VariableDeclaration", + "src": "5440:19:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint96", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_stringliteral_b7ac833594da1df58fd15c3b6b55eb20762dba088c48b65ce9d522a789ff2495", + "typeString": "literal_string \"Comp::transferFrom: transfer amount exceeds spender allowance\"" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 944, + "type": "function (uint96,uint96,string memory) pure returns (uint96)", + "value": "sub96" + }, + "id": 262, + "name": "Identifier", + "src": "5462:5:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 236, + "type": "uint96", + "value": "spenderAllowance" + }, + "id": 263, + "name": "Identifier", + "src": "5468:16:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 244, + "type": "uint96", + "value": "amount" + }, + "id": 264, + "name": "Identifier", + "src": "5486:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "436f6d703a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Comp::transferFrom: transfer amount exceeds spender allowance\"", + "value": "Comp::transferFrom: transfer amount exceeds spender allowance" + }, + "id": 265, + "name": "Literal", + "src": "5494:63:0" + } + ], + "id": 266, + "name": "FunctionCall", + "src": "5462:96:0" + } + ], + "id": 267, + "name": "VariableDeclarationStatement", + "src": "5440:118:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => uint96)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 20, + "type": "mapping(address => mapping(address => uint96))", + "value": "allowances" + }, + "id": 268, + "name": "Identifier", + "src": "5572:10:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 221, + "type": "address", + "value": "src" + }, + "id": 269, + "name": "Identifier", + "src": "5583:3:0" + } + ], + "id": 271, + "name": "IndexAccess", + "src": "5572:15:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 231, + "type": "address", + "value": "spender" + }, + "id": 270, + "name": "Identifier", + "src": "5588:7:0" + } + ], + "id": 272, + "name": "IndexAccess", + "src": "5572:24:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 261, + "type": "uint96", + "value": "newAllowance" + }, + "id": 273, + "name": "Identifier", + "src": "5599:12:0" + } + ], + "id": 274, + "name": "Assignment", + "src": "5572:39:0" + } + ], + "id": 275, + "name": "ExpressionStatement", + "src": "5572:39:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 89, + "type": "function (address,address,uint256)", + "value": "Approval" + }, + "id": 276, + "name": "Identifier", + "src": "5631:8:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 221, + "type": "address", + "value": "src" + }, + "id": 277, + "name": "Identifier", + "src": "5640:3:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 231, + "type": "address", + "value": "spender" + }, + "id": 278, + "name": "Identifier", + "src": "5645:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 261, + "type": "uint96", + "value": "newAllowance" + }, + "id": 279, + "name": "Identifier", + "src": "5654:12:0" + } + ], + "id": 280, + "name": "FunctionCall", + "src": "5631:36:0" + } + ], + "id": 281, + "name": "EmitStatement", + "src": "5626:41:0" + } + ], + "id": 282, + "name": "Block", + "src": "5426:252:0" + } + ], + "id": 283, + "name": "IfStatement", + "src": "5372:306:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 668, + "type": "function (address,address,uint96)", + "value": "_transferTokens" + }, + "id": 284, + "name": "Identifier", + "src": "5688:15:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 221, + "type": "address", + "value": "src" + }, + "id": 285, + "name": "Identifier", + "src": "5704:3:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 223, + "type": "address", + "value": "dst" + }, + "id": 286, + "name": "Identifier", + "src": "5709:3:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 244, + "type": "uint96", + "value": "amount" + }, + "id": 287, + "name": "Identifier", + "src": "5714:6:0" + } + ], + "id": 288, + "name": "FunctionCall", + "src": "5688:33:0" + } + ], + "id": 289, + "name": "ExpressionStatement", + "src": "5688:33:0" + }, + { + "attributes": { + "functionReturnParameters": 229 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 290, + "name": "Literal", + "src": "5738:4:0" + } + ], + "id": 291, + "name": "Return", + "src": "5731:11:0" + } + ], + "id": 292, + "name": "Block", + "src": "5179:570:0" + } + ], + "id": 293, + "name": "FunctionDefinition", + "src": "5091:658:0" + }, + { + "attributes": { + "documentation": "@notice Delegate votes from `msg.sender` to `delegatee`\n@param delegatee The address to delegate votes to", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "delegate", + "scope": 957, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "delegatee", + "scope": 305, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 294, + "name": "ElementaryTypeName", + "src": "5909:7:0" + } + ], + "id": 295, + "name": "VariableDeclaration", + "src": "5909:17:0" + } + ], + "id": 296, + "name": "ParameterList", + "src": "5908:19:0" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 297, + "name": "ParameterList", + "src": "5935:0:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 297 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 600, + "type": "function (address,address)", + "value": "_delegate" + }, + "id": 298, + "name": "Identifier", + "src": "5952:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 299, + "name": "Identifier", + "src": "5962:3:0" + } + ], + "id": 300, + "name": "MemberAccess", + "src": "5962:10:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 295, + "type": "address", + "value": "delegatee" + }, + "id": 301, + "name": "Identifier", + "src": "5974:9:0" + } + ], + "id": 302, + "name": "FunctionCall", + "src": "5952:32:0" + } + ], + "id": 303, + "name": "Return", + "src": "5945:39:0" + } + ], + "id": 304, + "name": "Block", + "src": "5935:56:0" + } + ], + "id": 305, + "name": "FunctionDefinition", + "src": "5891:100:0" + }, + { + "attributes": { + "documentation": "@notice Delegates votes from signatory to `delegatee`\n@param delegatee The address to delegate votes to\n@param nonce The contract state required to match the signature\n@param expiry The time at which to expire the signature\n@param v The recovery byte of the signature\n@param r Half of the ECDSA signature pair\n@param s Half of the ECDSA signature pair", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "delegateBySig", + "scope": 957, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "delegatee", + "scope": 403, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 306, + "name": "ElementaryTypeName", + "src": "6437:7:0" + } + ], + "id": 307, + "name": "VariableDeclaration", + "src": "6437:17:0" + }, + { + "attributes": { + "constant": false, + "name": "nonce", + "scope": 403, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 308, + "name": "ElementaryTypeName", + "src": "6456:4:0" + } + ], + "id": 309, + "name": "VariableDeclaration", + "src": "6456:10:0" + }, + { + "attributes": { + "constant": false, + "name": "expiry", + "scope": 403, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 310, + "name": "ElementaryTypeName", + "src": "6468:4:0" + } + ], + "id": 311, + "name": "VariableDeclaration", + "src": "6468:11:0" + }, + { + "attributes": { + "constant": false, + "name": "v", + "scope": 403, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 312, + "name": "ElementaryTypeName", + "src": "6481:5:0" + } + ], + "id": 313, + "name": "VariableDeclaration", + "src": "6481:7:0" + }, + { + "attributes": { + "constant": false, + "name": "r", + "scope": 403, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 314, + "name": "ElementaryTypeName", + "src": "6490:7:0" + } + ], + "id": 315, + "name": "VariableDeclaration", + "src": "6490:9:0" + }, + { + "attributes": { + "constant": false, + "name": "s", + "scope": 403, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 316, + "name": "ElementaryTypeName", + "src": "6501:7:0" + } + ], + "id": 317, + "name": "VariableDeclaration", + "src": "6501:9:0" + } + ], + "id": 318, + "name": "ParameterList", + "src": "6436:75:0" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 319, + "name": "ParameterList", + "src": "6519:0:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 321 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "domainSeparator", + "scope": 402, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 320, + "name": "ElementaryTypeName", + "src": "6529:7:0" + } + ], + "id": 321, + "name": "VariableDeclaration", + "src": "6529:23:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3349, + "type": "function (bytes memory) pure returns (bytes32)", + "value": "keccak256" + }, + "id": 322, + "name": "Identifier", + "src": "6555:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encode", + "referencedDeclaration": null, + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3342, + "type": "abi", + "value": "abi" + }, + "id": 323, + "name": "Identifier", + "src": "6565:3:0" + } + ], + "id": 324, + "name": "MemberAccess", + "src": "6565:10:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 48, + "type": "bytes32", + "value": "DOMAIN_TYPEHASH" + }, + "id": 325, + "name": "Identifier", + "src": "6576:15:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3349, + "type": "function (bytes memory) pure returns (bytes32)", + "value": "keccak256" + }, + "id": 326, + "name": "Identifier", + "src": "6593:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)", + "value": "bytes" + }, + "id": 327, + "name": "ElementaryTypeNameExpression", + "src": "6603:5:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 5, + "type": "string memory", + "value": "name" + }, + "id": 328, + "name": "Identifier", + "src": "6609:4:0" + } + ], + "id": 329, + "name": "FunctionCall", + "src": "6603:11:0" + } + ], + "id": 330, + "name": "FunctionCall", + "src": "6593:22:0" + }, + { + "attributes": { + "argumentTypes": null, + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 956, + "type": "function () pure returns (uint256)", + "value": "getChainId" + }, + "id": 331, + "name": "Identifier", + "src": "6617:10:0" + } + ], + "id": 332, + "name": "FunctionCall", + "src": "6617:12:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comp_$957", + "typeString": "contract Comp" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 333, + "name": "ElementaryTypeNameExpression", + "src": "6631:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3369, + "type": "contract Comp", + "value": "this" + }, + "id": 334, + "name": "Identifier", + "src": "6639:4:0" + } + ], + "id": 335, + "name": "FunctionCall", + "src": "6631:13:0" + } + ], + "id": 336, + "name": "FunctionCall", + "src": "6565:80:0" + } + ], + "id": 337, + "name": "FunctionCall", + "src": "6555:91:0" + } + ], + "id": 338, + "name": "VariableDeclarationStatement", + "src": "6529:117:0" + }, + { + "attributes": { + "assignments": [ + 340 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "structHash", + "scope": 402, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 339, + "name": "ElementaryTypeName", + "src": "6656:7:0" + } + ], + "id": 340, + "name": "VariableDeclaration", + "src": "6656:18:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3349, + "type": "function (bytes memory) pure returns (bytes32)", + "value": "keccak256" + }, + "id": 341, + "name": "Identifier", + "src": "6677:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encode", + "referencedDeclaration": null, + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3342, + "type": "abi", + "value": "abi" + }, + "id": 342, + "name": "Identifier", + "src": "6687:3:0" + } + ], + "id": 343, + "name": "MemberAccess", + "src": "6687:10:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 53, + "type": "bytes32", + "value": "DELEGATION_TYPEHASH" + }, + "id": 344, + "name": "Identifier", + "src": "6698:19:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 307, + "type": "address", + "value": "delegatee" + }, + "id": 345, + "name": "Identifier", + "src": "6719:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 309, + "type": "uint256", + "value": "nonce" + }, + "id": 346, + "name": "Identifier", + "src": "6730:5:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 311, + "type": "uint256", + "value": "expiry" + }, + "id": 347, + "name": "Identifier", + "src": "6737:6:0" + } + ], + "id": 348, + "name": "FunctionCall", + "src": "6687:57:0" + } + ], + "id": 349, + "name": "FunctionCall", + "src": "6677:68:0" + } + ], + "id": 350, + "name": "VariableDeclarationStatement", + "src": "6656:89:0" + }, + { + "attributes": { + "assignments": [ + 352 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "digest", + "scope": 402, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 351, + "name": "ElementaryTypeName", + "src": "6755:7:0" + } + ], + "id": 352, + "name": "VariableDeclaration", + "src": "6755:14:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3349, + "type": "function (bytes memory) pure returns (bytes32)", + "value": "keccak256" + }, + "id": 353, + "name": "Identifier", + "src": "6772:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "referencedDeclaration": null, + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3342, + "type": "abi", + "value": "abi" + }, + "id": 354, + "name": "Identifier", + "src": "6782:3:0" + } + ], + "id": 355, + "name": "MemberAccess", + "src": "6782:16:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "1901", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"\u0019\u0001\"", + "value": "\u0019\u0001" + }, + "id": 356, + "name": "Literal", + "src": "6799:10:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 321, + "type": "bytes32", + "value": "domainSeparator" + }, + "id": 357, + "name": "Identifier", + "src": "6811:15:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 340, + "type": "bytes32", + "value": "structHash" + }, + "id": 358, + "name": "Identifier", + "src": "6828:10:0" + } + ], + "id": 359, + "name": "FunctionCall", + "src": "6782:57:0" + } + ], + "id": 360, + "name": "FunctionCall", + "src": "6772:68:0" + } + ], + "id": 361, + "name": "VariableDeclarationStatement", + "src": "6755:85:0" + }, + { + "attributes": { + "assignments": [ + 363 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "signatory", + "scope": 402, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 362, + "name": "ElementaryTypeName", + "src": "6850:7:0" + } + ], + "id": 363, + "name": "VariableDeclaration", + "src": "6850:17:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3347, + "type": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)", + "value": "ecrecover" + }, + "id": 364, + "name": "Identifier", + "src": "6870:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 352, + "type": "bytes32", + "value": "digest" + }, + "id": 365, + "name": "Identifier", + "src": "6880:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 313, + "type": "uint8", + "value": "v" + }, + "id": 366, + "name": "Identifier", + "src": "6888:1:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 315, + "type": "bytes32", + "value": "r" + }, + "id": 367, + "name": "Identifier", + "src": "6891:1:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 317, + "type": "bytes32", + "value": "s" + }, + "id": 368, + "name": "Identifier", + "src": "6894:1:0" + } + ], + "id": 369, + "name": "FunctionCall", + "src": "6870:26:0" + } + ], + "id": 370, + "name": "VariableDeclarationStatement", + "src": "6850:46:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2af9d25b44c3e789cf7d12e941fc7ef1e32cecdd98da61996de7571027751bd3", + "typeString": "literal_string \"Comp::delegateBySig: invalid signature\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 371, + "name": "Identifier", + "src": "6906:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 363, + "type": "address", + "value": "signatory" + }, + "id": 372, + "name": "Identifier", + "src": "6914:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 373, + "name": "ElementaryTypeNameExpression", + "src": "6927:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 374, + "name": "Literal", + "src": "6935:1:0" + } + ], + "id": 375, + "name": "FunctionCall", + "src": "6927:10:0" + } + ], + "id": 376, + "name": "BinaryOperation", + "src": "6914:23:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "436f6d703a3a64656c656761746542795369673a20696e76616c6964207369676e6174757265", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Comp::delegateBySig: invalid signature\"", + "value": "Comp::delegateBySig: invalid signature" + }, + "id": 377, + "name": "Literal", + "src": "6939:40:0" + } + ], + "id": 378, + "name": "FunctionCall", + "src": "6906:74:0" + } + ], + "id": 379, + "name": "ExpressionStatement", + "src": "6906:74:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_646cb63637df51b5cf3e35b8d418574ca2fa5dde981ba9f8f5779cfcbbc8a355", + "typeString": "literal_string \"Comp::delegateBySig: invalid nonce\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 380, + "name": "Identifier", + "src": "6990:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 309, + "type": "uint256", + "value": "nonce" + }, + "id": 381, + "name": "Identifier", + "src": "6998:5:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 57, + "type": "mapping(address => uint256)", + "value": "nonces" + }, + "id": 382, + "name": "Identifier", + "src": "7007:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 363, + "type": "address", + "value": "signatory" + }, + "id": 383, + "name": "Identifier", + "src": "7014:9:0" + } + ], + "id": 384, + "name": "IndexAccess", + "src": "7007:17:0" + } + ], + "id": 385, + "name": "UnaryOperation", + "src": "7007:19:0" + } + ], + "id": 386, + "name": "BinaryOperation", + "src": "6998:28:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "436f6d703a3a64656c656761746542795369673a20696e76616c6964206e6f6e6365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Comp::delegateBySig: invalid nonce\"", + "value": "Comp::delegateBySig: invalid nonce" + }, + "id": 387, + "name": "Literal", + "src": "7028:36:0" + } + ], + "id": 388, + "name": "FunctionCall", + "src": "6990:75:0" + } + ], + "id": 389, + "name": "ExpressionStatement", + "src": "6990:75:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2e8a87756e5afc73b82eff32f16bb6b10740f4f70e3e129eab06194e30ad3059", + "typeString": "literal_string \"Comp::delegateBySig: signature expired\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 390, + "name": "Identifier", + "src": "7075:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3357, + "type": "uint256", + "value": "now" + }, + "id": 391, + "name": "Identifier", + "src": "7083:3:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 311, + "type": "uint256", + "value": "expiry" + }, + "id": 392, + "name": "Identifier", + "src": "7090:6:0" + } + ], + "id": 393, + "name": "BinaryOperation", + "src": "7083:13:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "436f6d703a3a64656c656761746542795369673a207369676e61747572652065787069726564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Comp::delegateBySig: signature expired\"", + "value": "Comp::delegateBySig: signature expired" + }, + "id": 394, + "name": "Literal", + "src": "7098:40:0" + } + ], + "id": 395, + "name": "FunctionCall", + "src": "7075:64:0" + } + ], + "id": 396, + "name": "ExpressionStatement", + "src": "7075:64:0" + }, + { + "attributes": { + "functionReturnParameters": 319 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 600, + "type": "function (address,address)", + "value": "_delegate" + }, + "id": 397, + "name": "Identifier", + "src": "7156:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 363, + "type": "address", + "value": "signatory" + }, + "id": 398, + "name": "Identifier", + "src": "7166:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 307, + "type": "address", + "value": "delegatee" + }, + "id": 399, + "name": "Identifier", + "src": "7177:9:0" + } + ], + "id": 400, + "name": "FunctionCall", + "src": "7156:31:0" + } + ], + "id": 401, + "name": "Return", + "src": "7149:38:0" + } + ], + "id": 402, + "name": "Block", + "src": "6519:675:0" + } + ], + "id": 403, + "name": "FunctionDefinition", + "src": "6414:780:0" + }, + { + "attributes": { + "documentation": "@notice Gets the current votes balance for `account`\n@param account The address to get votes balance\n@return The number of current votes for `account`", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getCurrentVotes", + "scope": 957, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "account", + "scope": 431, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 404, + "name": "ElementaryTypeName", + "src": "7413:7:0" + } + ], + "id": 405, + "name": "VariableDeclaration", + "src": "7413:15:0" + } + ], + "id": 406, + "name": "ParameterList", + "src": "7412:17:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 431, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 407, + "name": "ElementaryTypeName", + "src": "7453:6:0" + } + ], + "id": 408, + "name": "VariableDeclaration", + "src": "7453:6:0" + } + ], + "id": 409, + "name": "ParameterList", + "src": "7452:8:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 411 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "nCheckpoints", + "scope": 430, + "stateVariable": false, + "storageLocation": "default", + "type": "uint32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint32", + "type": "uint32" + }, + "id": 410, + "name": "ElementaryTypeName", + "src": "7471:6:0" + } + ], + "id": 411, + "name": "VariableDeclaration", + "src": "7471:19:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 43, + "type": "mapping(address => uint32)", + "value": "numCheckpoints" + }, + "id": 412, + "name": "Identifier", + "src": "7493:14:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 405, + "type": "address", + "value": "account" + }, + "id": 413, + "name": "Identifier", + "src": "7508:7:0" + } + ], + "id": 414, + "name": "IndexAccess", + "src": "7493:23:0" + } + ], + "id": 415, + "name": "VariableDeclarationStatement", + "src": "7471:45:0" + }, + { + "attributes": { + "functionReturnParameters": 409 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 411, + "type": "uint32", + "value": "nCheckpoints" + }, + "id": 416, + "name": "Identifier", + "src": "7533:12:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 417, + "name": "Literal", + "src": "7548:1:0" + } + ], + "id": 418, + "name": "BinaryOperation", + "src": "7533:16:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "votes", + "referencedDeclaration": 32, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct Comp.Checkpoint storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 39, + "type": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))", + "value": "checkpoints" + }, + "id": 419, + "name": "Identifier", + "src": "7552:11:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 405, + "type": "address", + "value": "account" + }, + "id": 420, + "name": "Identifier", + "src": "7564:7:0" + } + ], + "id": 421, + "name": "IndexAccess", + "src": "7552:20:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 411, + "type": "uint32", + "value": "nCheckpoints" + }, + "id": 422, + "name": "Identifier", + "src": "7573:12:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 423, + "name": "Literal", + "src": "7588:1:0" + } + ], + "id": 424, + "name": "BinaryOperation", + "src": "7573:16:0" + } + ], + "id": 425, + "name": "IndexAccess", + "src": "7552:38:0" + } + ], + "id": 426, + "name": "MemberAccess", + "src": "7552:44:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 427, + "name": "Literal", + "src": "7599:1:0" + } + ], + "id": 428, + "name": "Conditional", + "src": "7533:67:0" + } + ], + "id": 429, + "name": "Return", + "src": "7526:74:0" + } + ], + "id": 430, + "name": "Block", + "src": "7461:146:0" + } + ], + "id": 431, + "name": "FunctionDefinition", + "src": "7388:219:0" + }, + { + "attributes": { + "documentation": "@notice Determine the prior number of votes for an account as of a block number\n@dev Block number must be a finalized block or else this function will revert to prevent misinformation.\n@param account The address of the account to check\n@param blockNumber The block number to get the vote balance at\n@return The number of votes the account had as of the given block", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getPriorVotes", + "scope": 957, + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "account", + "scope": 562, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 432, + "name": "ElementaryTypeName", + "src": "8052:7:0" + } + ], + "id": 433, + "name": "VariableDeclaration", + "src": "8052:15:0" + }, + { + "attributes": { + "constant": false, + "name": "blockNumber", + "scope": 562, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 434, + "name": "ElementaryTypeName", + "src": "8069:4:0" + } + ], + "id": 435, + "name": "VariableDeclaration", + "src": "8069:16:0" + } + ], + "id": 436, + "name": "ParameterList", + "src": "8051:35:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 562, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 437, + "name": "ElementaryTypeName", + "src": "8108:6:0" + } + ], + "id": 438, + "name": "VariableDeclaration", + "src": "8108:6:0" + } + ], + "id": 439, + "name": "ParameterList", + "src": "8107:8:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_49387db7fef935f0f28be8b61df0527ef3c11db5acad132a74e4fb5d480e55d0", + "typeString": "literal_string \"Comp::getPriorVotes: not yet determined\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 440, + "name": "Identifier", + "src": "8126:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 435, + "type": "uint256", + "value": "blockNumber" + }, + "id": 441, + "name": "Identifier", + "src": "8134:11:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "number", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3345, + "type": "block", + "value": "block" + }, + "id": 442, + "name": "Identifier", + "src": "8148:5:0" + } + ], + "id": 443, + "name": "MemberAccess", + "src": "8148:12:0" + } + ], + "id": 444, + "name": "BinaryOperation", + "src": "8134:26:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "436f6d703a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Comp::getPriorVotes: not yet determined\"", + "value": "Comp::getPriorVotes: not yet determined" + }, + "id": 445, + "name": "Literal", + "src": "8162:41:0" + } + ], + "id": 446, + "name": "FunctionCall", + "src": "8126:78:0" + } + ], + "id": 447, + "name": "ExpressionStatement", + "src": "8126:78:0" + }, + { + "attributes": { + "assignments": [ + 449 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "nCheckpoints", + "scope": 561, + "stateVariable": false, + "storageLocation": "default", + "type": "uint32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint32", + "type": "uint32" + }, + "id": 448, + "name": "ElementaryTypeName", + "src": "8215:6:0" + } + ], + "id": 449, + "name": "VariableDeclaration", + "src": "8215:19:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 43, + "type": "mapping(address => uint32)", + "value": "numCheckpoints" + }, + "id": 450, + "name": "Identifier", + "src": "8237:14:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 433, + "type": "address", + "value": "account" + }, + "id": 451, + "name": "Identifier", + "src": "8252:7:0" + } + ], + "id": 452, + "name": "IndexAccess", + "src": "8237:23:0" + } + ], + "id": 453, + "name": "VariableDeclarationStatement", + "src": "8215:45:0" + }, + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 449, + "type": "uint32", + "value": "nCheckpoints" + }, + "id": 454, + "name": "Identifier", + "src": "8274:12:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 455, + "name": "Literal", + "src": "8290:1:0" + } + ], + "id": 456, + "name": "BinaryOperation", + "src": "8274:17:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 439 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 457, + "name": "Literal", + "src": "8314:1:0" + } + ], + "id": 458, + "name": "Return", + "src": "8307:8:0" + } + ], + "id": 459, + "name": "Block", + "src": "8293:33:0" + } + ], + "id": 460, + "name": "IfStatement", + "src": "8270:56:0" + }, + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "fromBlock", + "referencedDeclaration": 30, + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct Comp.Checkpoint storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 39, + "type": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))", + "value": "checkpoints" + }, + "id": 461, + "name": "Identifier", + "src": "8383:11:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 433, + "type": "address", + "value": "account" + }, + "id": 462, + "name": "Identifier", + "src": "8395:7:0" + } + ], + "id": 463, + "name": "IndexAccess", + "src": "8383:20:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 449, + "type": "uint32", + "value": "nCheckpoints" + }, + "id": 464, + "name": "Identifier", + "src": "8404:12:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 465, + "name": "Literal", + "src": "8419:1:0" + } + ], + "id": 466, + "name": "BinaryOperation", + "src": "8404:16:0" + } + ], + "id": 467, + "name": "IndexAccess", + "src": "8383:38:0" + } + ], + "id": 468, + "name": "MemberAccess", + "src": "8383:48:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 435, + "type": "uint256", + "value": "blockNumber" + }, + "id": 469, + "name": "Identifier", + "src": "8435:11:0" + } + ], + "id": 470, + "name": "BinaryOperation", + "src": "8383:63:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 439 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "votes", + "referencedDeclaration": 32, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct Comp.Checkpoint storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 39, + "type": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))", + "value": "checkpoints" + }, + "id": 471, + "name": "Identifier", + "src": "8469:11:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 433, + "type": "address", + "value": "account" + }, + "id": 472, + "name": "Identifier", + "src": "8481:7:0" + } + ], + "id": 473, + "name": "IndexAccess", + "src": "8469:20:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 449, + "type": "uint32", + "value": "nCheckpoints" + }, + "id": 474, + "name": "Identifier", + "src": "8490:12:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 475, + "name": "Literal", + "src": "8505:1:0" + } + ], + "id": 476, + "name": "BinaryOperation", + "src": "8490:16:0" + } + ], + "id": 477, + "name": "IndexAccess", + "src": "8469:38:0" + } + ], + "id": 478, + "name": "MemberAccess", + "src": "8469:44:0" + } + ], + "id": 479, + "name": "Return", + "src": "8462:51:0" + } + ], + "id": 480, + "name": "Block", + "src": "8448:76:0" + } + ], + "id": 481, + "name": "IfStatement", + "src": "8379:145:0" + }, + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "fromBlock", + "referencedDeclaration": 30, + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct Comp.Checkpoint storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 39, + "type": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))", + "value": "checkpoints" + }, + "id": 482, + "name": "Identifier", + "src": "8582:11:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 433, + "type": "address", + "value": "account" + }, + "id": 483, + "name": "Identifier", + "src": "8594:7:0" + } + ], + "id": 484, + "name": "IndexAccess", + "src": "8582:20:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 485, + "name": "Literal", + "src": "8603:1:0" + } + ], + "id": 486, + "name": "IndexAccess", + "src": "8582:23:0" + } + ], + "id": 487, + "name": "MemberAccess", + "src": "8582:33:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 435, + "type": "uint256", + "value": "blockNumber" + }, + "id": 488, + "name": "Identifier", + "src": "8618:11:0" + } + ], + "id": 489, + "name": "BinaryOperation", + "src": "8582:47:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 439 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 490, + "name": "Literal", + "src": "8652:1:0" + } + ], + "id": 491, + "name": "Return", + "src": "8645:8:0" + } + ], + "id": 492, + "name": "Block", + "src": "8631:33:0" + } + ], + "id": 493, + "name": "IfStatement", + "src": "8578:86:0" + }, + { + "attributes": { + "assignments": [ + 495 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "lower", + "scope": 561, + "stateVariable": false, + "storageLocation": "default", + "type": "uint32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint32", + "type": "uint32" + }, + "id": 494, + "name": "ElementaryTypeName", + "src": "8674:6:0" + } + ], + "id": 495, + "name": "VariableDeclaration", + "src": "8674:12:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 496, + "name": "Literal", + "src": "8689:1:0" + } + ], + "id": 497, + "name": "VariableDeclarationStatement", + "src": "8674:16:0" + }, + { + "attributes": { + "assignments": [ + 499 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "upper", + "scope": 561, + "stateVariable": false, + "storageLocation": "default", + "type": "uint32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint32", + "type": "uint32" + }, + "id": 498, + "name": "ElementaryTypeName", + "src": "8700:6:0" + } + ], + "id": 499, + "name": "VariableDeclaration", + "src": "8700:12:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 449, + "type": "uint32", + "value": "nCheckpoints" + }, + "id": 500, + "name": "Identifier", + "src": "8715:12:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 501, + "name": "Literal", + "src": "8730:1:0" + } + ], + "id": 502, + "name": "BinaryOperation", + "src": "8715:16:0" + } + ], + "id": 503, + "name": "VariableDeclarationStatement", + "src": "8700:31:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 499, + "type": "uint32", + "value": "upper" + }, + "id": 504, + "name": "Identifier", + "src": "8748:5:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 495, + "type": "uint32", + "value": "lower" + }, + "id": 505, + "name": "Identifier", + "src": "8756:5:0" + } + ], + "id": 506, + "name": "BinaryOperation", + "src": "8748:13:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 508 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "center", + "scope": 552, + "stateVariable": false, + "storageLocation": "default", + "type": "uint32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint32", + "type": "uint32" + }, + "id": 507, + "name": "ElementaryTypeName", + "src": "8777:6:0" + } + ], + "id": 508, + "name": "VariableDeclaration", + "src": "8777:13:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 499, + "type": "uint32", + "value": "upper" + }, + "id": 509, + "name": "Identifier", + "src": "8793:5:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 499, + "type": "uint32", + "value": "upper" + }, + "id": 510, + "name": "Identifier", + "src": "8802:5:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 495, + "type": "uint32", + "value": "lower" + }, + "id": 511, + "name": "Identifier", + "src": "8810:5:0" + } + ], + "id": 512, + "name": "BinaryOperation", + "src": "8802:13:0" + } + ], + "id": 513, + "name": "TupleExpression", + "src": "8801:15:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "32", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 2", + "value": "2" + }, + "id": 514, + "name": "Literal", + "src": "8819:1:0" + } + ], + "id": 515, + "name": "BinaryOperation", + "src": "8801:19:0" + } + ], + "id": 516, + "name": "BinaryOperation", + "src": "8793:27:0" + } + ], + "id": 517, + "name": "VariableDeclarationStatement", + "src": "8777:43:0" + }, + { + "attributes": { + "assignments": [ + 519 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "cp", + "scope": 552, + "stateVariable": false, + "storageLocation": "memory", + "type": "struct Comp.Checkpoint", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "Checkpoint", + "referencedDeclaration": 33, + "type": "struct Comp.Checkpoint" + }, + "id": 518, + "name": "UserDefinedTypeName", + "src": "8861:10:0" + } + ], + "id": 519, + "name": "VariableDeclaration", + "src": "8861:20:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct Comp.Checkpoint storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 39, + "type": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))", + "value": "checkpoints" + }, + "id": 520, + "name": "Identifier", + "src": "8884:11:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 433, + "type": "address", + "value": "account" + }, + "id": 521, + "name": "Identifier", + "src": "8896:7:0" + } + ], + "id": 522, + "name": "IndexAccess", + "src": "8884:20:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 508, + "type": "uint32", + "value": "center" + }, + "id": 523, + "name": "Identifier", + "src": "8905:6:0" + } + ], + "id": 524, + "name": "IndexAccess", + "src": "8884:28:0" + } + ], + "id": 525, + "name": "VariableDeclarationStatement", + "src": "8861:51:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "fromBlock", + "referencedDeclaration": 30, + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 519, + "type": "struct Comp.Checkpoint memory", + "value": "cp" + }, + "id": 526, + "name": "Identifier", + "src": "8930:2:0" + } + ], + "id": 527, + "name": "MemberAccess", + "src": "8930:12:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 435, + "type": "uint256", + "value": "blockNumber" + }, + "id": 528, + "name": "Identifier", + "src": "8946:11:0" + } + ], + "id": 529, + "name": "BinaryOperation", + "src": "8930:27:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 439 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "votes", + "referencedDeclaration": 32, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 519, + "type": "struct Comp.Checkpoint memory", + "value": "cp" + }, + "id": 530, + "name": "Identifier", + "src": "8984:2:0" + } + ], + "id": 531, + "name": "MemberAccess", + "src": "8984:8:0" + } + ], + "id": 532, + "name": "Return", + "src": "8977:15:0" + } + ], + "id": 533, + "name": "Block", + "src": "8959:48:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "fromBlock", + "referencedDeclaration": 30, + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 519, + "type": "struct Comp.Checkpoint memory", + "value": "cp" + }, + "id": 534, + "name": "Identifier", + "src": "9017:2:0" + } + ], + "id": 535, + "name": "MemberAccess", + "src": "9017:12:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 435, + "type": "uint256", + "value": "blockNumber" + }, + "id": 536, + "name": "Identifier", + "src": "9032:11:0" + } + ], + "id": 537, + "name": "BinaryOperation", + "src": "9017:26:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 495, + "type": "uint32", + "value": "lower" + }, + "id": 538, + "name": "Identifier", + "src": "9063:5:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 508, + "type": "uint32", + "value": "center" + }, + "id": 539, + "name": "Identifier", + "src": "9071:6:0" + } + ], + "id": 540, + "name": "Assignment", + "src": "9063:14:0" + } + ], + "id": 541, + "name": "ExpressionStatement", + "src": "9063:14:0" + } + ], + "id": 542, + "name": "Block", + "src": "9045:47:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 499, + "type": "uint32", + "value": "upper" + }, + "id": 543, + "name": "Identifier", + "src": "9116:5:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 508, + "type": "uint32", + "value": "center" + }, + "id": 544, + "name": "Identifier", + "src": "9124:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 545, + "name": "Literal", + "src": "9133:1:0" + } + ], + "id": 546, + "name": "BinaryOperation", + "src": "9124:10:0" + } + ], + "id": 547, + "name": "Assignment", + "src": "9116:18:0" + } + ], + "id": 548, + "name": "ExpressionStatement", + "src": "9116:18:0" + } + ], + "id": 549, + "name": "Block", + "src": "9098:51:0" + } + ], + "id": 550, + "name": "IfStatement", + "src": "9013:136:0" + } + ], + "id": 551, + "name": "IfStatement", + "src": "8926:223:0" + } + ], + "id": 552, + "name": "Block", + "src": "8763:396:0" + } + ], + "id": 553, + "name": "WhileStatement", + "src": "8741:418:0" + }, + { + "attributes": { + "functionReturnParameters": 439 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "votes", + "referencedDeclaration": 32, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct Comp.Checkpoint storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 39, + "type": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))", + "value": "checkpoints" + }, + "id": 554, + "name": "Identifier", + "src": "9175:11:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 433, + "type": "address", + "value": "account" + }, + "id": 555, + "name": "Identifier", + "src": "9187:7:0" + } + ], + "id": 556, + "name": "IndexAccess", + "src": "9175:20:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 495, + "type": "uint32", + "value": "lower" + }, + "id": 557, + "name": "Identifier", + "src": "9196:5:0" + } + ], + "id": 558, + "name": "IndexAccess", + "src": "9175:27:0" + } + ], + "id": 559, + "name": "MemberAccess", + "src": "9175:33:0" + } + ], + "id": 560, + "name": "Return", + "src": "9168:40:0" + } + ], + "id": 561, + "name": "Block", + "src": "8116:1099:0" + } + ], + "id": 562, + "name": "FunctionDefinition", + "src": "8029:1186:0" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_delegate", + "scope": 957, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "delegator", + "scope": 600, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 563, + "name": "ElementaryTypeName", + "src": "9240:7:0" + } + ], + "id": 564, + "name": "VariableDeclaration", + "src": "9240:17:0" + }, + { + "attributes": { + "constant": false, + "name": "delegatee", + "scope": 600, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 565, + "name": "ElementaryTypeName", + "src": "9259:7:0" + } + ], + "id": 566, + "name": "VariableDeclaration", + "src": "9259:17:0" + } + ], + "id": 567, + "name": "ParameterList", + "src": "9239:38:0" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 568, + "name": "ParameterList", + "src": "9287:0:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 570 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "currentDelegate", + "scope": 599, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 569, + "name": "ElementaryTypeName", + "src": "9297:7:0" + } + ], + "id": 570, + "name": "VariableDeclaration", + "src": "9297:23:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 28, + "type": "mapping(address => address)", + "value": "delegates" + }, + "id": 571, + "name": "Identifier", + "src": "9323:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 564, + "type": "address", + "value": "delegator" + }, + "id": 572, + "name": "Identifier", + "src": "9333:9:0" + } + ], + "id": 573, + "name": "IndexAccess", + "src": "9323:20:0" + } + ], + "id": 574, + "name": "VariableDeclarationStatement", + "src": "9297:46:0" + }, + { + "attributes": { + "assignments": [ + 576 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "delegatorBalance", + "scope": 599, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 575, + "name": "ElementaryTypeName", + "src": "9353:6:0" + } + ], + "id": 576, + "name": "VariableDeclaration", + "src": "9353:23:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 24, + "type": "mapping(address => uint96)", + "value": "balances" + }, + "id": 577, + "name": "Identifier", + "src": "9379:8:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 564, + "type": "address", + "value": "delegator" + }, + "id": 578, + "name": "Identifier", + "src": "9388:9:0" + } + ], + "id": 579, + "name": "IndexAccess", + "src": "9379:19:0" + } + ], + "id": 580, + "name": "VariableDeclarationStatement", + "src": "9353:45:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 28, + "type": "mapping(address => address)", + "value": "delegates" + }, + "id": 581, + "name": "Identifier", + "src": "9408:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 564, + "type": "address", + "value": "delegator" + }, + "id": 582, + "name": "Identifier", + "src": "9418:9:0" + } + ], + "id": 583, + "name": "IndexAccess", + "src": "9408:20:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 566, + "type": "address", + "value": "delegatee" + }, + "id": 584, + "name": "Identifier", + "src": "9431:9:0" + } + ], + "id": 585, + "name": "Assignment", + "src": "9408:32:0" + } + ], + "id": 586, + "name": "ExpressionStatement", + "src": "9408:32:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 65, + "type": "function (address,address,address)", + "value": "DelegateChanged" + }, + "id": 587, + "name": "Identifier", + "src": "9456:15:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 564, + "type": "address", + "value": "delegator" + }, + "id": 588, + "name": "Identifier", + "src": "9472:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 570, + "type": "address", + "value": "currentDelegate" + }, + "id": 589, + "name": "Identifier", + "src": "9483:15:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 566, + "type": "address", + "value": "delegatee" + }, + "id": 590, + "name": "Identifier", + "src": "9500:9:0" + } + ], + "id": 591, + "name": "FunctionCall", + "src": "9456:54:0" + } + ], + "id": 592, + "name": "EmitStatement", + "src": "9451:59:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 775, + "type": "function (address,address,uint96)", + "value": "_moveDelegates" + }, + "id": 593, + "name": "Identifier", + "src": "9521:14:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 570, + "type": "address", + "value": "currentDelegate" + }, + "id": 594, + "name": "Identifier", + "src": "9536:15:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 566, + "type": "address", + "value": "delegatee" + }, + "id": 595, + "name": "Identifier", + "src": "9553:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 576, + "type": "uint96", + "value": "delegatorBalance" + }, + "id": 596, + "name": "Identifier", + "src": "9564:16:0" + } + ], + "id": 597, + "name": "FunctionCall", + "src": "9521:60:0" + } + ], + "id": 598, + "name": "ExpressionStatement", + "src": "9521:60:0" + } + ], + "id": 599, + "name": "Block", + "src": "9287:301:0" + } + ], + "id": 600, + "name": "FunctionDefinition", + "src": "9221:367:0" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_transferTokens", + "scope": 957, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "src", + "scope": 668, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 601, + "name": "ElementaryTypeName", + "src": "9619:7:0" + } + ], + "id": 602, + "name": "VariableDeclaration", + "src": "9619:11:0" + }, + { + "attributes": { + "constant": false, + "name": "dst", + "scope": 668, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 603, + "name": "ElementaryTypeName", + "src": "9632:7:0" + } + ], + "id": 604, + "name": "VariableDeclaration", + "src": "9632:11:0" + }, + { + "attributes": { + "constant": false, + "name": "amount", + "scope": 668, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 605, + "name": "ElementaryTypeName", + "src": "9645:6:0" + } + ], + "id": 606, + "name": "VariableDeclaration", + "src": "9645:13:0" + } + ], + "id": 607, + "name": "ParameterList", + "src": "9618:41:0" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 608, + "name": "ParameterList", + "src": "9669:0:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a1f9ee8b9464145aa6c6c80f5dd3de0ed75b63050c7ed5dda64f4dfa66ae889e", + "typeString": "literal_string \"Comp::_transferTokens: cannot transfer from the zero address\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 609, + "name": "Identifier", + "src": "9679:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 602, + "type": "address", + "value": "src" + }, + "id": 610, + "name": "Identifier", + "src": "9687:3:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 611, + "name": "ElementaryTypeNameExpression", + "src": "9694:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 612, + "name": "Literal", + "src": "9702:1:0" + } + ], + "id": 613, + "name": "FunctionCall", + "src": "9694:10:0" + } + ], + "id": 614, + "name": "BinaryOperation", + "src": "9687:17:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "436f6d703a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207472616e736665722066726f6d20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Comp::_transferTokens: cannot transfer from the zero address\"", + "value": "Comp::_transferTokens: cannot transfer from the zero address" + }, + "id": 615, + "name": "Literal", + "src": "9706:62:0" + } + ], + "id": 616, + "name": "FunctionCall", + "src": "9679:90:0" + } + ], + "id": 617, + "name": "ExpressionStatement", + "src": "9679:90:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6dfd73e095121fac86dfcecda88ee2e5a2c4c80da47692a4520dec08a942eef4", + "typeString": "literal_string \"Comp::_transferTokens: cannot transfer to the zero address\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 618, + "name": "Identifier", + "src": "9779:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 604, + "type": "address", + "value": "dst" + }, + "id": 619, + "name": "Identifier", + "src": "9787:3:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 620, + "name": "ElementaryTypeNameExpression", + "src": "9794:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 621, + "name": "Literal", + "src": "9802:1:0" + } + ], + "id": 622, + "name": "FunctionCall", + "src": "9794:10:0" + } + ], + "id": 623, + "name": "BinaryOperation", + "src": "9787:17:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "436f6d703a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207472616e7366657220746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Comp::_transferTokens: cannot transfer to the zero address\"", + "value": "Comp::_transferTokens: cannot transfer to the zero address" + }, + "id": 624, + "name": "Literal", + "src": "9806:60:0" + } + ], + "id": 625, + "name": "FunctionCall", + "src": "9779:88:0" + } + ], + "id": 626, + "name": "ExpressionStatement", + "src": "9779:88:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 24, + "type": "mapping(address => uint96)", + "value": "balances" + }, + "id": 627, + "name": "Identifier", + "src": "9878:8:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 602, + "type": "address", + "value": "src" + }, + "id": 628, + "name": "Identifier", + "src": "9887:3:0" + } + ], + "id": 629, + "name": "IndexAccess", + "src": "9878:13:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint96", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_stringliteral_20f75e61dae66bd43cc4d6e74412a2a0dfc4c34b4746776eb4e12c627179461c", + "typeString": "literal_string \"Comp::_transferTokens: transfer amount exceeds balance\"" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 944, + "type": "function (uint96,uint96,string memory) pure returns (uint96)", + "value": "sub96" + }, + "id": 630, + "name": "Identifier", + "src": "9894:5:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 24, + "type": "mapping(address => uint96)", + "value": "balances" + }, + "id": 631, + "name": "Identifier", + "src": "9900:8:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 602, + "type": "address", + "value": "src" + }, + "id": 632, + "name": "Identifier", + "src": "9909:3:0" + } + ], + "id": 633, + "name": "IndexAccess", + "src": "9900:13:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 606, + "type": "uint96", + "value": "amount" + }, + "id": 634, + "name": "Identifier", + "src": "9915:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "436f6d703a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Comp::_transferTokens: transfer amount exceeds balance\"", + "value": "Comp::_transferTokens: transfer amount exceeds balance" + }, + "id": 635, + "name": "Literal", + "src": "9923:56:0" + } + ], + "id": 636, + "name": "FunctionCall", + "src": "9894:86:0" + } + ], + "id": 637, + "name": "Assignment", + "src": "9878:102:0" + } + ], + "id": 638, + "name": "ExpressionStatement", + "src": "9878:102:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 24, + "type": "mapping(address => uint96)", + "value": "balances" + }, + "id": 639, + "name": "Identifier", + "src": "9990:8:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 604, + "type": "address", + "value": "dst" + }, + "id": 640, + "name": "Identifier", + "src": "9999:3:0" + } + ], + "id": 641, + "name": "IndexAccess", + "src": "9990:13:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint96", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_stringliteral_838ec7826d8a7e194a0b4c14b8572b8a97cbf1ec9a1dd8f0dc2ca0dbf889365c", + "typeString": "literal_string \"Comp::_transferTokens: transfer amount overflows\"" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 921, + "type": "function (uint96,uint96,string memory) pure returns (uint96)", + "value": "add96" + }, + "id": 642, + "name": "Identifier", + "src": "10006:5:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 24, + "type": "mapping(address => uint96)", + "value": "balances" + }, + "id": 643, + "name": "Identifier", + "src": "10012:8:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 604, + "type": "address", + "value": "dst" + }, + "id": 644, + "name": "Identifier", + "src": "10021:3:0" + } + ], + "id": 645, + "name": "IndexAccess", + "src": "10012:13:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 606, + "type": "uint96", + "value": "amount" + }, + "id": 646, + "name": "Identifier", + "src": "10027:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "436f6d703a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Comp::_transferTokens: transfer amount overflows\"", + "value": "Comp::_transferTokens: transfer amount overflows" + }, + "id": 647, + "name": "Literal", + "src": "10035:50:0" + } + ], + "id": 648, + "name": "FunctionCall", + "src": "10006:80:0" + } + ], + "id": 649, + "name": "Assignment", + "src": "9990:96:0" + } + ], + "id": 650, + "name": "ExpressionStatement", + "src": "9990:96:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 81, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 651, + "name": "Identifier", + "src": "10101:8:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 602, + "type": "address", + "value": "src" + }, + "id": 652, + "name": "Identifier", + "src": "10110:3:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 604, + "type": "address", + "value": "dst" + }, + "id": 653, + "name": "Identifier", + "src": "10115:3:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 606, + "type": "uint96", + "value": "amount" + }, + "id": 654, + "name": "Identifier", + "src": "10120:6:0" + } + ], + "id": 655, + "name": "FunctionCall", + "src": "10101:26:0" + } + ], + "id": 656, + "name": "EmitStatement", + "src": "10096:31:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 775, + "type": "function (address,address,uint96)", + "value": "_moveDelegates" + }, + "id": 657, + "name": "Identifier", + "src": "10138:14:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 28, + "type": "mapping(address => address)", + "value": "delegates" + }, + "id": 658, + "name": "Identifier", + "src": "10153:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 602, + "type": "address", + "value": "src" + }, + "id": 659, + "name": "Identifier", + "src": "10163:3:0" + } + ], + "id": 660, + "name": "IndexAccess", + "src": "10153:14:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 28, + "type": "mapping(address => address)", + "value": "delegates" + }, + "id": 661, + "name": "Identifier", + "src": "10169:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 604, + "type": "address", + "value": "dst" + }, + "id": 662, + "name": "Identifier", + "src": "10179:3:0" + } + ], + "id": 663, + "name": "IndexAccess", + "src": "10169:14:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 606, + "type": "uint96", + "value": "amount" + }, + "id": 664, + "name": "Identifier", + "src": "10185:6:0" + } + ], + "id": 665, + "name": "FunctionCall", + "src": "10138:54:0" + } + ], + "id": 666, + "name": "ExpressionStatement", + "src": "10138:54:0" + } + ], + "id": 667, + "name": "Block", + "src": "9669:530:0" + } + ], + "id": 668, + "name": "FunctionDefinition", + "src": "9594:605:0" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_moveDelegates", + "scope": 957, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "srcRep", + "scope": 775, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 669, + "name": "ElementaryTypeName", + "src": "10229:7:0" + } + ], + "id": 670, + "name": "VariableDeclaration", + "src": "10229:14:0" + }, + { + "attributes": { + "constant": false, + "name": "dstRep", + "scope": 775, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 671, + "name": "ElementaryTypeName", + "src": "10245:7:0" + } + ], + "id": 672, + "name": "VariableDeclaration", + "src": "10245:14:0" + }, + { + "attributes": { + "constant": false, + "name": "amount", + "scope": 775, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 673, + "name": "ElementaryTypeName", + "src": "10261:6:0" + } + ], + "id": 674, + "name": "VariableDeclaration", + "src": "10261:13:0" + } + ], + "id": 675, + "name": "ParameterList", + "src": "10228:47:0" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 676, + "name": "ParameterList", + "src": "10285:0:0" + }, + { + "children": [ + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "&&", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 670, + "type": "address", + "value": "srcRep" + }, + "id": 677, + "name": "Identifier", + "src": "10299:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 672, + "type": "address", + "value": "dstRep" + }, + "id": 678, + "name": "Identifier", + "src": "10309:6:0" + } + ], + "id": 679, + "name": "BinaryOperation", + "src": "10299:16:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 674, + "type": "uint96", + "value": "amount" + }, + "id": 680, + "name": "Identifier", + "src": "10319:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 681, + "name": "Literal", + "src": "10328:1:0" + } + ], + "id": 682, + "name": "BinaryOperation", + "src": "10319:10:0" + } + ], + "id": 683, + "name": "BinaryOperation", + "src": "10299:30:0" + }, + { + "children": [ + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 670, + "type": "address", + "value": "srcRep" + }, + "id": 684, + "name": "Identifier", + "src": "10349:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 685, + "name": "ElementaryTypeNameExpression", + "src": "10359:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 686, + "name": "Literal", + "src": "10367:1:0" + } + ], + "id": 687, + "name": "FunctionCall", + "src": "10359:10:0" + } + ], + "id": 688, + "name": "BinaryOperation", + "src": "10349:20:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 690 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "srcRepNum", + "scope": 726, + "stateVariable": false, + "storageLocation": "default", + "type": "uint32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint32", + "type": "uint32" + }, + "id": 689, + "name": "ElementaryTypeName", + "src": "10389:6:0" + } + ], + "id": 690, + "name": "VariableDeclaration", + "src": "10389:16:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 43, + "type": "mapping(address => uint32)", + "value": "numCheckpoints" + }, + "id": 691, + "name": "Identifier", + "src": "10408:14:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 670, + "type": "address", + "value": "srcRep" + }, + "id": 692, + "name": "Identifier", + "src": "10423:6:0" + } + ], + "id": 693, + "name": "IndexAccess", + "src": "10408:22:0" + } + ], + "id": 694, + "name": "VariableDeclarationStatement", + "src": "10389:41:0" + }, + { + "attributes": { + "assignments": [ + 696 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "srcRepOld", + "scope": 726, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 695, + "name": "ElementaryTypeName", + "src": "10448:6:0" + } + ], + "id": 696, + "name": "VariableDeclaration", + "src": "10448:16:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 690, + "type": "uint32", + "value": "srcRepNum" + }, + "id": 697, + "name": "Identifier", + "src": "10467:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 698, + "name": "Literal", + "src": "10479:1:0" + } + ], + "id": 699, + "name": "BinaryOperation", + "src": "10467:13:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "votes", + "referencedDeclaration": 32, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct Comp.Checkpoint storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 39, + "type": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))", + "value": "checkpoints" + }, + "id": 700, + "name": "Identifier", + "src": "10483:11:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 670, + "type": "address", + "value": "srcRep" + }, + "id": 701, + "name": "Identifier", + "src": "10495:6:0" + } + ], + "id": 702, + "name": "IndexAccess", + "src": "10483:19:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 690, + "type": "uint32", + "value": "srcRepNum" + }, + "id": 703, + "name": "Identifier", + "src": "10503:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 704, + "name": "Literal", + "src": "10515:1:0" + } + ], + "id": 705, + "name": "BinaryOperation", + "src": "10503:13:0" + } + ], + "id": 706, + "name": "IndexAccess", + "src": "10483:34:0" + } + ], + "id": 707, + "name": "MemberAccess", + "src": "10483:40:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 708, + "name": "Literal", + "src": "10526:1:0" + } + ], + "id": 709, + "name": "Conditional", + "src": "10467:60:0" + } + ], + "id": 710, + "name": "VariableDeclarationStatement", + "src": "10448:79:0" + }, + { + "attributes": { + "assignments": [ + 712 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "srcRepNew", + "scope": 726, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 711, + "name": "ElementaryTypeName", + "src": "10545:6:0" + } + ], + "id": 712, + "name": "VariableDeclaration", + "src": "10545:16:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint96", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_stringliteral_79bf2f3c2009651b33d37efb8a65657c3e203b2c36f61068863922cb9e64a77a", + "typeString": "literal_string \"Comp::_moveVotes: vote amount underflows\"" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 944, + "type": "function (uint96,uint96,string memory) pure returns (uint96)", + "value": "sub96" + }, + "id": 713, + "name": "Identifier", + "src": "10564:5:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 696, + "type": "uint96", + "value": "srcRepOld" + }, + "id": 714, + "name": "Identifier", + "src": "10570:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 674, + "type": "uint96", + "value": "amount" + }, + "id": 715, + "name": "Identifier", + "src": "10581:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "436f6d703a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Comp::_moveVotes: vote amount underflows\"", + "value": "Comp::_moveVotes: vote amount underflows" + }, + "id": 716, + "name": "Literal", + "src": "10589:42:0" + } + ], + "id": 717, + "name": "FunctionCall", + "src": "10564:68:0" + } + ], + "id": 718, + "name": "VariableDeclarationStatement", + "src": "10545:87:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 848, + "type": "function (address,uint32,uint96,uint96)", + "value": "_writeCheckpoint" + }, + "id": 719, + "name": "Identifier", + "src": "10650:16:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 670, + "type": "address", + "value": "srcRep" + }, + "id": 720, + "name": "Identifier", + "src": "10667:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 690, + "type": "uint32", + "value": "srcRepNum" + }, + "id": 721, + "name": "Identifier", + "src": "10675:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 696, + "type": "uint96", + "value": "srcRepOld" + }, + "id": 722, + "name": "Identifier", + "src": "10686:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 712, + "type": "uint96", + "value": "srcRepNew" + }, + "id": 723, + "name": "Identifier", + "src": "10697:9:0" + } + ], + "id": 724, + "name": "FunctionCall", + "src": "10650:57:0" + } + ], + "id": 725, + "name": "ExpressionStatement", + "src": "10650:57:0" + } + ], + "id": 726, + "name": "Block", + "src": "10371:351:0" + } + ], + "id": 727, + "name": "IfStatement", + "src": "10345:377:0" + }, + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 672, + "type": "address", + "value": "dstRep" + }, + "id": 728, + "name": "Identifier", + "src": "10740:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 729, + "name": "ElementaryTypeNameExpression", + "src": "10750:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 730, + "name": "Literal", + "src": "10758:1:0" + } + ], + "id": 731, + "name": "FunctionCall", + "src": "10750:10:0" + } + ], + "id": 732, + "name": "BinaryOperation", + "src": "10740:20:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 734 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "dstRepNum", + "scope": 770, + "stateVariable": false, + "storageLocation": "default", + "type": "uint32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint32", + "type": "uint32" + }, + "id": 733, + "name": "ElementaryTypeName", + "src": "10780:6:0" + } + ], + "id": 734, + "name": "VariableDeclaration", + "src": "10780:16:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 43, + "type": "mapping(address => uint32)", + "value": "numCheckpoints" + }, + "id": 735, + "name": "Identifier", + "src": "10799:14:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 672, + "type": "address", + "value": "dstRep" + }, + "id": 736, + "name": "Identifier", + "src": "10814:6:0" + } + ], + "id": 737, + "name": "IndexAccess", + "src": "10799:22:0" + } + ], + "id": 738, + "name": "VariableDeclarationStatement", + "src": "10780:41:0" + }, + { + "attributes": { + "assignments": [ + 740 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "dstRepOld", + "scope": 770, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 739, + "name": "ElementaryTypeName", + "src": "10839:6:0" + } + ], + "id": 740, + "name": "VariableDeclaration", + "src": "10839:16:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 734, + "type": "uint32", + "value": "dstRepNum" + }, + "id": 741, + "name": "Identifier", + "src": "10858:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 742, + "name": "Literal", + "src": "10870:1:0" + } + ], + "id": 743, + "name": "BinaryOperation", + "src": "10858:13:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "votes", + "referencedDeclaration": 32, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct Comp.Checkpoint storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 39, + "type": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))", + "value": "checkpoints" + }, + "id": 744, + "name": "Identifier", + "src": "10874:11:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 672, + "type": "address", + "value": "dstRep" + }, + "id": 745, + "name": "Identifier", + "src": "10886:6:0" + } + ], + "id": 746, + "name": "IndexAccess", + "src": "10874:19:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 734, + "type": "uint32", + "value": "dstRepNum" + }, + "id": 747, + "name": "Identifier", + "src": "10894:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 748, + "name": "Literal", + "src": "10906:1:0" + } + ], + "id": 749, + "name": "BinaryOperation", + "src": "10894:13:0" + } + ], + "id": 750, + "name": "IndexAccess", + "src": "10874:34:0" + } + ], + "id": 751, + "name": "MemberAccess", + "src": "10874:40:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 752, + "name": "Literal", + "src": "10917:1:0" + } + ], + "id": 753, + "name": "Conditional", + "src": "10858:60:0" + } + ], + "id": 754, + "name": "VariableDeclarationStatement", + "src": "10839:79:0" + }, + { + "attributes": { + "assignments": [ + 756 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "dstRepNew", + "scope": 770, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 755, + "name": "ElementaryTypeName", + "src": "10936:6:0" + } + ], + "id": 756, + "name": "VariableDeclaration", + "src": "10936:16:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint96", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_stringliteral_cac5f7635b67aba587752f385d4aaa6fe7d1615e382cd95e6c1ae76525be695e", + "typeString": "literal_string \"Comp::_moveVotes: vote amount overflows\"" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 921, + "type": "function (uint96,uint96,string memory) pure returns (uint96)", + "value": "add96" + }, + "id": 757, + "name": "Identifier", + "src": "10955:5:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 740, + "type": "uint96", + "value": "dstRepOld" + }, + "id": 758, + "name": "Identifier", + "src": "10961:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 674, + "type": "uint96", + "value": "amount" + }, + "id": 759, + "name": "Identifier", + "src": "10972:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "436f6d703a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Comp::_moveVotes: vote amount overflows\"", + "value": "Comp::_moveVotes: vote amount overflows" + }, + "id": 760, + "name": "Literal", + "src": "10980:41:0" + } + ], + "id": 761, + "name": "FunctionCall", + "src": "10955:67:0" + } + ], + "id": 762, + "name": "VariableDeclarationStatement", + "src": "10936:86:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 848, + "type": "function (address,uint32,uint96,uint96)", + "value": "_writeCheckpoint" + }, + "id": 763, + "name": "Identifier", + "src": "11040:16:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 672, + "type": "address", + "value": "dstRep" + }, + "id": 764, + "name": "Identifier", + "src": "11057:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 734, + "type": "uint32", + "value": "dstRepNum" + }, + "id": 765, + "name": "Identifier", + "src": "11065:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 740, + "type": "uint96", + "value": "dstRepOld" + }, + "id": 766, + "name": "Identifier", + "src": "11076:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 756, + "type": "uint96", + "value": "dstRepNew" + }, + "id": 767, + "name": "Identifier", + "src": "11087:9:0" + } + ], + "id": 768, + "name": "FunctionCall", + "src": "11040:57:0" + } + ], + "id": 769, + "name": "ExpressionStatement", + "src": "11040:57:0" + } + ], + "id": 770, + "name": "Block", + "src": "10762:350:0" + } + ], + "id": 771, + "name": "IfStatement", + "src": "10736:376:0" + } + ], + "id": 772, + "name": "Block", + "src": "10331:791:0" + } + ], + "id": 773, + "name": "IfStatement", + "src": "10295:827:0" + } + ], + "id": 774, + "name": "Block", + "src": "10285:843:0" + } + ], + "id": 775, + "name": "FunctionDefinition", + "src": "10205:923:0" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_writeCheckpoint", + "scope": 957, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "delegatee", + "scope": 848, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 776, + "name": "ElementaryTypeName", + "src": "11160:7:0" + } + ], + "id": 777, + "name": "VariableDeclaration", + "src": "11160:17:0" + }, + { + "attributes": { + "constant": false, + "name": "nCheckpoints", + "scope": 848, + "stateVariable": false, + "storageLocation": "default", + "type": "uint32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint32", + "type": "uint32" + }, + "id": 778, + "name": "ElementaryTypeName", + "src": "11179:6:0" + } + ], + "id": 779, + "name": "VariableDeclaration", + "src": "11179:19:0" + }, + { + "attributes": { + "constant": false, + "name": "oldVotes", + "scope": 848, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 780, + "name": "ElementaryTypeName", + "src": "11200:6:0" + } + ], + "id": 781, + "name": "VariableDeclaration", + "src": "11200:15:0" + }, + { + "attributes": { + "constant": false, + "name": "newVotes", + "scope": 848, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 782, + "name": "ElementaryTypeName", + "src": "11217:6:0" + } + ], + "id": 783, + "name": "VariableDeclaration", + "src": "11217:15:0" + } + ], + "id": 784, + "name": "ParameterList", + "src": "11159:74:0" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 785, + "name": "ParameterList", + "src": "11243:0:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 787 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "blockNumber", + "scope": 847, + "stateVariable": false, + "storageLocation": "default", + "type": "uint32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint32", + "type": "uint32" + }, + "id": 786, + "name": "ElementaryTypeName", + "src": "11251:6:0" + } + ], + "id": 787, + "name": "VariableDeclaration", + "src": "11251:18:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_6426c6c63f7c8daecf0b8a35bfe8c0f43dc9621d39cb2bf0c2cd35cc9db8742f", + "typeString": "literal_string \"Comp::_writeCheckpoint: block number exceeds 32 bits\"" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 871, + "type": "function (uint256,string memory) pure returns (uint32)", + "value": "safe32" + }, + "id": 788, + "name": "Identifier", + "src": "11272:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "number", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3345, + "type": "block", + "value": "block" + }, + "id": 789, + "name": "Identifier", + "src": "11279:5:0" + } + ], + "id": 790, + "name": "MemberAccess", + "src": "11279:12:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "436f6d703a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Comp::_writeCheckpoint: block number exceeds 32 bits\"", + "value": "Comp::_writeCheckpoint: block number exceeds 32 bits" + }, + "id": 791, + "name": "Literal", + "src": "11293:54:0" + } + ], + "id": 792, + "name": "FunctionCall", + "src": "11272:76:0" + } + ], + "id": 793, + "name": "VariableDeclarationStatement", + "src": "11251:97:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "&&", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 779, + "type": "uint32", + "value": "nCheckpoints" + }, + "id": 794, + "name": "Identifier", + "src": "11361:12:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 795, + "name": "Literal", + "src": "11376:1:0" + } + ], + "id": 796, + "name": "BinaryOperation", + "src": "11361:16:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "fromBlock", + "referencedDeclaration": 30, + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct Comp.Checkpoint storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 39, + "type": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))", + "value": "checkpoints" + }, + "id": 797, + "name": "Identifier", + "src": "11381:11:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 777, + "type": "address", + "value": "delegatee" + }, + "id": 798, + "name": "Identifier", + "src": "11393:9:0" + } + ], + "id": 799, + "name": "IndexAccess", + "src": "11381:22:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 779, + "type": "uint32", + "value": "nCheckpoints" + }, + "id": 800, + "name": "Identifier", + "src": "11404:12:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 801, + "name": "Literal", + "src": "11419:1:0" + } + ], + "id": 802, + "name": "BinaryOperation", + "src": "11404:16:0" + } + ], + "id": 803, + "name": "IndexAccess", + "src": "11381:40:0" + } + ], + "id": 804, + "name": "MemberAccess", + "src": "11381:50:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 787, + "type": "uint32", + "value": "blockNumber" + }, + "id": 805, + "name": "Identifier", + "src": "11435:11:0" + } + ], + "id": 806, + "name": "BinaryOperation", + "src": "11381:65:0" + } + ], + "id": 807, + "name": "BinaryOperation", + "src": "11361:85:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "votes", + "referencedDeclaration": 32, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct Comp.Checkpoint storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 39, + "type": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))", + "value": "checkpoints" + }, + "id": 808, + "name": "Identifier", + "src": "11460:11:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 777, + "type": "address", + "value": "delegatee" + }, + "id": 809, + "name": "Identifier", + "src": "11472:9:0" + } + ], + "id": 813, + "name": "IndexAccess", + "src": "11460:22:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 779, + "type": "uint32", + "value": "nCheckpoints" + }, + "id": 810, + "name": "Identifier", + "src": "11483:12:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 811, + "name": "Literal", + "src": "11498:1:0" + } + ], + "id": 812, + "name": "BinaryOperation", + "src": "11483:16:0" + } + ], + "id": 814, + "name": "IndexAccess", + "src": "11460:40:0" + } + ], + "id": 815, + "name": "MemberAccess", + "src": "11460:46:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 783, + "type": "uint96", + "value": "newVotes" + }, + "id": 816, + "name": "Identifier", + "src": "11509:8:0" + } + ], + "id": 817, + "name": "Assignment", + "src": "11460:57:0" + } + ], + "id": 818, + "name": "ExpressionStatement", + "src": "11460:57:0" + } + ], + "id": 819, + "name": "Block", + "src": "11448:78:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "struct Comp.Checkpoint storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "struct Comp.Checkpoint storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(uint32 => struct Comp.Checkpoint storage ref)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 39, + "type": "mapping(address => mapping(uint32 => struct Comp.Checkpoint storage ref))", + "value": "checkpoints" + }, + "id": 820, + "name": "Identifier", + "src": "11544:11:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 777, + "type": "address", + "value": "delegatee" + }, + "id": 821, + "name": "Identifier", + "src": "11556:9:0" + } + ], + "id": 823, + "name": "IndexAccess", + "src": "11544:22:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 779, + "type": "uint32", + "value": "nCheckpoints" + }, + "id": 822, + "name": "Identifier", + "src": "11567:12:0" + } + ], + "id": 824, + "name": "IndexAccess", + "src": "11544:36:0" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": true, + "lValueRequested": false, + "names": [ + null + ], + "type": "struct Comp.Checkpoint memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 33, + "type": "type(struct Comp.Checkpoint storage pointer)", + "value": "Checkpoint" + }, + "id": 825, + "name": "Identifier", + "src": "11583:10:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 787, + "type": "uint32", + "value": "blockNumber" + }, + "id": 826, + "name": "Identifier", + "src": "11594:11:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 783, + "type": "uint96", + "value": "newVotes" + }, + "id": 827, + "name": "Identifier", + "src": "11607:8:0" + } + ], + "id": 828, + "name": "FunctionCall", + "src": "11583:33:0" + } + ], + "id": 829, + "name": "Assignment", + "src": "11544:72:0" + } + ], + "id": 830, + "name": "ExpressionStatement", + "src": "11544:72:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 43, + "type": "mapping(address => uint32)", + "value": "numCheckpoints" + }, + "id": 831, + "name": "Identifier", + "src": "11628:14:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 777, + "type": "address", + "value": "delegatee" + }, + "id": 832, + "name": "Identifier", + "src": "11643:9:0" + } + ], + "id": 833, + "name": "IndexAccess", + "src": "11628:25:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 779, + "type": "uint32", + "value": "nCheckpoints" + }, + "id": 834, + "name": "Identifier", + "src": "11656:12:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 835, + "name": "Literal", + "src": "11671:1:0" + } + ], + "id": 836, + "name": "BinaryOperation", + "src": "11656:16:0" + } + ], + "id": 837, + "name": "Assignment", + "src": "11628:44:0" + } + ], + "id": 838, + "name": "ExpressionStatement", + "src": "11628:44:0" + } + ], + "id": 839, + "name": "Block", + "src": "11532:149:0" + } + ], + "id": 840, + "name": "IfStatement", + "src": "11357:324:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 73, + "type": "function (address,uint256,uint256)", + "value": "DelegateVotesChanged" + }, + "id": 841, + "name": "Identifier", + "src": "11694:20:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 777, + "type": "address", + "value": "delegatee" + }, + "id": 842, + "name": "Identifier", + "src": "11715:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 781, + "type": "uint96", + "value": "oldVotes" + }, + "id": 843, + "name": "Identifier", + "src": "11726:8:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 783, + "type": "uint96", + "value": "newVotes" + }, + "id": 844, + "name": "Identifier", + "src": "11736:8:0" + } + ], + "id": 845, + "name": "FunctionCall", + "src": "11694:51:0" + } + ], + "id": 846, + "name": "EmitStatement", + "src": "11689:56:0" + } + ], + "id": 847, + "name": "Block", + "src": "11243:509:0" + } + ], + "id": 848, + "name": "FunctionDefinition", + "src": "11134:618:0" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safe32", + "scope": 957, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "n", + "scope": 871, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 849, + "name": "ElementaryTypeName", + "src": "11774:4:0" + } + ], + "id": 850, + "name": "VariableDeclaration", + "src": "11774:6:0" + }, + { + "attributes": { + "constant": false, + "name": "errorMessage", + "scope": 871, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 851, + "name": "ElementaryTypeName", + "src": "11782:6:0" + } + ], + "id": 852, + "name": "VariableDeclaration", + "src": "11782:26:0" + } + ], + "id": 853, + "name": "ParameterList", + "src": "11773:36:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 871, + "stateVariable": false, + "storageLocation": "default", + "type": "uint32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint32", + "type": "uint32" + }, + "id": 854, + "name": "ElementaryTypeName", + "src": "11833:6:0" + } + ], + "id": 855, + "name": "VariableDeclaration", + "src": "11833:6:0" + } + ], + "id": 856, + "name": "ParameterList", + "src": "11832:8:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 857, + "name": "Identifier", + "src": "11851:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 850, + "type": "uint256", + "value": "n" + }, + "id": 858, + "name": "Identifier", + "src": "11859:1:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "operator": "**", + "type": "int_const 4294967296" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "32", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 2", + "value": "2" + }, + "id": 859, + "name": "Literal", + "src": "11863:1:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "3332", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 32", + "value": "32" + }, + "id": 860, + "name": "Literal", + "src": "11866:2:0" + } + ], + "id": 861, + "name": "BinaryOperation", + "src": "11863:5:0" + } + ], + "id": 862, + "name": "BinaryOperation", + "src": "11859:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 852, + "type": "string memory", + "value": "errorMessage" + }, + "id": 863, + "name": "Identifier", + "src": "11870:12:0" + } + ], + "id": 864, + "name": "FunctionCall", + "src": "11851:32:0" + } + ], + "id": 865, + "name": "ExpressionStatement", + "src": "11851:32:0" + }, + { + "attributes": { + "functionReturnParameters": 856 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint32)", + "value": "uint32" + }, + "id": 866, + "name": "ElementaryTypeNameExpression", + "src": "11900:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 850, + "type": "uint256", + "value": "n" + }, + "id": 867, + "name": "Identifier", + "src": "11907:1:0" + } + ], + "id": 868, + "name": "FunctionCall", + "src": "11900:9:0" + } + ], + "id": 869, + "name": "Return", + "src": "11893:16:0" + } + ], + "id": 870, + "name": "Block", + "src": "11841:75:0" + } + ], + "id": 871, + "name": "FunctionDefinition", + "src": "11758:158:0" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safe96", + "scope": 957, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "n", + "scope": 894, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 872, + "name": "ElementaryTypeName", + "src": "11938:4:0" + } + ], + "id": 873, + "name": "VariableDeclaration", + "src": "11938:6:0" + }, + { + "attributes": { + "constant": false, + "name": "errorMessage", + "scope": 894, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 874, + "name": "ElementaryTypeName", + "src": "11946:6:0" + } + ], + "id": 875, + "name": "VariableDeclaration", + "src": "11946:26:0" + } + ], + "id": 876, + "name": "ParameterList", + "src": "11937:36:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 894, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 877, + "name": "ElementaryTypeName", + "src": "11997:6:0" + } + ], + "id": 878, + "name": "VariableDeclaration", + "src": "11997:6:0" + } + ], + "id": 879, + "name": "ParameterList", + "src": "11996:8:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 880, + "name": "Identifier", + "src": "12015:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 873, + "type": "uint256", + "value": "n" + }, + "id": 881, + "name": "Identifier", + "src": "12023:1:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_79228162514264337593543950336_by_1", + "typeString": "int_const 79228162514264337593543950336" + }, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "operator": "**", + "type": "int_const 79228162514264337593543950336" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "32", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 2", + "value": "2" + }, + "id": 882, + "name": "Literal", + "src": "12027:1:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "3936", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 96", + "value": "96" + }, + "id": 883, + "name": "Literal", + "src": "12030:2:0" + } + ], + "id": 884, + "name": "BinaryOperation", + "src": "12027:5:0" + } + ], + "id": 885, + "name": "BinaryOperation", + "src": "12023:9:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 875, + "type": "string memory", + "value": "errorMessage" + }, + "id": 886, + "name": "Identifier", + "src": "12034:12:0" + } + ], + "id": 887, + "name": "FunctionCall", + "src": "12015:32:0" + } + ], + "id": 888, + "name": "ExpressionStatement", + "src": "12015:32:0" + }, + { + "attributes": { + "functionReturnParameters": 879 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint96", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint96)", + "value": "uint96" + }, + "id": 889, + "name": "ElementaryTypeNameExpression", + "src": "12064:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 873, + "type": "uint256", + "value": "n" + }, + "id": 890, + "name": "Identifier", + "src": "12071:1:0" + } + ], + "id": 891, + "name": "FunctionCall", + "src": "12064:9:0" + } + ], + "id": 892, + "name": "Return", + "src": "12057:16:0" + } + ], + "id": 893, + "name": "Block", + "src": "12005:75:0" + } + ], + "id": 894, + "name": "FunctionDefinition", + "src": "11922:158:0" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add96", + "scope": 957, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 921, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 895, + "name": "ElementaryTypeName", + "src": "12101:6:0" + } + ], + "id": 896, + "name": "VariableDeclaration", + "src": "12101:8:0" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 921, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 897, + "name": "ElementaryTypeName", + "src": "12111:6:0" + } + ], + "id": 898, + "name": "VariableDeclaration", + "src": "12111:8:0" + }, + { + "attributes": { + "constant": false, + "name": "errorMessage", + "scope": 921, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 899, + "name": "ElementaryTypeName", + "src": "12121:6:0" + } + ], + "id": 900, + "name": "VariableDeclaration", + "src": "12121:26:0" + } + ], + "id": 901, + "name": "ParameterList", + "src": "12100:48:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 921, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 902, + "name": "ElementaryTypeName", + "src": "12172:6:0" + } + ], + "id": 903, + "name": "VariableDeclaration", + "src": "12172:6:0" + } + ], + "id": 904, + "name": "ParameterList", + "src": "12171:8:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 906 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "c", + "scope": 920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 905, + "name": "ElementaryTypeName", + "src": "12190:6:0" + } + ], + "id": 906, + "name": "VariableDeclaration", + "src": "12190:8:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 896, + "type": "uint96", + "value": "a" + }, + "id": 907, + "name": "Identifier", + "src": "12201:1:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 898, + "type": "uint96", + "value": "b" + }, + "id": 908, + "name": "Identifier", + "src": "12205:1:0" + } + ], + "id": 909, + "name": "BinaryOperation", + "src": "12201:5:0" + } + ], + "id": 910, + "name": "VariableDeclarationStatement", + "src": "12190:16:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 911, + "name": "Identifier", + "src": "12216:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 906, + "type": "uint96", + "value": "c" + }, + "id": 912, + "name": "Identifier", + "src": "12224:1:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 896, + "type": "uint96", + "value": "a" + }, + "id": 913, + "name": "Identifier", + "src": "12229:1:0" + } + ], + "id": 914, + "name": "BinaryOperation", + "src": "12224:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 900, + "type": "string memory", + "value": "errorMessage" + }, + "id": 915, + "name": "Identifier", + "src": "12232:12:0" + } + ], + "id": 916, + "name": "FunctionCall", + "src": "12216:29:0" + } + ], + "id": 917, + "name": "ExpressionStatement", + "src": "12216:29:0" + }, + { + "attributes": { + "functionReturnParameters": 904 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 906, + "type": "uint96", + "value": "c" + }, + "id": 918, + "name": "Identifier", + "src": "12262:1:0" + } + ], + "id": 919, + "name": "Return", + "src": "12255:8:0" + } + ], + "id": 920, + "name": "Block", + "src": "12180:90:0" + } + ], + "id": 921, + "name": "FunctionDefinition", + "src": "12086:184:0" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub96", + "scope": 957, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 944, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 922, + "name": "ElementaryTypeName", + "src": "12291:6:0" + } + ], + "id": 923, + "name": "VariableDeclaration", + "src": "12291:8:0" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 944, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 924, + "name": "ElementaryTypeName", + "src": "12301:6:0" + } + ], + "id": 925, + "name": "VariableDeclaration", + "src": "12301:8:0" + }, + { + "attributes": { + "constant": false, + "name": "errorMessage", + "scope": 944, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 926, + "name": "ElementaryTypeName", + "src": "12311:6:0" + } + ], + "id": 927, + "name": "VariableDeclaration", + "src": "12311:26:0" + } + ], + "id": 928, + "name": "ParameterList", + "src": "12290:48:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 944, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 929, + "name": "ElementaryTypeName", + "src": "12362:6:0" + } + ], + "id": 930, + "name": "VariableDeclaration", + "src": "12362:6:0" + } + ], + "id": 931, + "name": "ParameterList", + "src": "12361:8:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 932, + "name": "Identifier", + "src": "12380:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 925, + "type": "uint96", + "value": "b" + }, + "id": 933, + "name": "Identifier", + "src": "12388:1:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 923, + "type": "uint96", + "value": "a" + }, + "id": 934, + "name": "Identifier", + "src": "12393:1:0" + } + ], + "id": 935, + "name": "BinaryOperation", + "src": "12388:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 927, + "type": "string memory", + "value": "errorMessage" + }, + "id": 936, + "name": "Identifier", + "src": "12396:12:0" + } + ], + "id": 937, + "name": "FunctionCall", + "src": "12380:29:0" + } + ], + "id": 938, + "name": "ExpressionStatement", + "src": "12380:29:0" + }, + { + "attributes": { + "functionReturnParameters": 931 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 923, + "type": "uint96", + "value": "a" + }, + "id": 939, + "name": "Identifier", + "src": "12426:1:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 925, + "type": "uint96", + "value": "b" + }, + "id": 940, + "name": "Identifier", + "src": "12430:1:0" + } + ], + "id": 941, + "name": "BinaryOperation", + "src": "12426:5:0" + } + ], + "id": 942, + "name": "Return", + "src": "12419:12:0" + } + ], + "id": 943, + "name": "Block", + "src": "12370:68:0" + } + ], + "id": 944, + "name": "FunctionDefinition", + "src": "12276:162:0" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getChainId", + "scope": 957, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 945, + "name": "ParameterList", + "src": "12463:2:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 956, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 946, + "name": "ElementaryTypeName", + "src": "12489:4:0" + } + ], + "id": 947, + "name": "VariableDeclaration", + "src": "12489:4:0" + } + ], + "id": 948, + "name": "ParameterList", + "src": "12488:6:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 950 + ], + "initialValue": null + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "chainId", + "scope": 955, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 949, + "name": "ElementaryTypeName", + "src": "12505:7:0" + } + ], + "id": 950, + "name": "VariableDeclaration", + "src": "12505:15:0" + } + ], + "id": 951, + "name": "VariableDeclarationStatement", + "src": "12505:15:0" + }, + { + "attributes": { + "externalReferences": [ + { + "chainId": { + "declaration": 950, + "isOffset": false, + "isSlot": false, + "src": "12541:7:0", + "valueSize": 1 + } + } + ], + "operations": "{ chainId := chainid() }" + }, + "children": [], + "id": 952, + "name": "InlineAssembly", + "src": "12530:33:0" + }, + { + "attributes": { + "functionReturnParameters": 948 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 950, + "type": "uint256", + "value": "chainId" + }, + "id": 953, + "name": "Identifier", + "src": "12579:7:0" + } + ], + "id": 954, + "name": "Return", + "src": "12572:14:0" + } + ], + "id": 955, + "name": "Block", + "src": "12495:98:0" + } + ], + "id": 956, + "name": "FunctionDefinition", + "src": "12444:149:0" + } + ], + "id": 957, + "name": "ContractDefinition", + "src": "60:12535:0" + } + ], + "id": 958, + "name": "SourceUnit", + "src": "0:12596:0" + }, + "compiler": { + "name": "solc", + "version": "0.5.16" + }, + "networks": { + "28": { + "events": {}, + "links": {}, + "address": "0x32060605c3a9c0f4D0cb93B13c77dCdCCc00D72D", + "transactionHash": "0xee6ffa0f3420635f97ebc4549c367cd78f042dca2381a1b6a6977d870b053097" + } + }, + "schemaVersion": "3.4.3", + "updatedAt": "2021-09-05T22:07:11.003Z", + "networkType": "ethereum", + "devdoc": { + "methods": { + "allowance(address,address)": { + "params": { + "account": "The address of the account holding the funds", + "spender": "The address of the account spending the funds" + }, + "return": "The number of tokens approved" + }, + "approve(address,uint256)": { + "details": "This will overwrite the approval amount for `spender` and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve)", + "params": { + "rawAmount": "The number of tokens that are approved (2^256-1 means infinite)", + "spender": "The address of the account which may transfer tokens" + }, + "return": "Whether or not the approval succeeded" + }, + "balanceOf(address)": { + "params": { + "account": "The address of the account to get the balance of" + }, + "return": "The number of tokens held" + }, + "constructor": { + "params": { + "account": "The initial account to grant all the tokens" + } + }, + "delegate(address)": { + "params": { + "delegatee": "The address to delegate votes to" + } + }, + "delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)": { + "params": { + "delegatee": "The address to delegate votes to", + "expiry": "The time at which to expire the signature", + "nonce": "The contract state required to match the signature", + "r": "Half of the ECDSA signature pair", + "s": "Half of the ECDSA signature pair", + "v": "The recovery byte of the signature" + } + }, + "getCurrentVotes(address)": { + "params": { + "account": "The address to get votes balance" + }, + "return": "The number of current votes for `account`" + }, + "getPriorVotes(address,uint256)": { + "details": "Block number must be a finalized block or else this function will revert to prevent misinformation.", + "params": { + "account": "The address of the account to check", + "blockNumber": "The block number to get the vote balance at" + }, + "return": "The number of votes the account had as of the given block" + }, + "transfer(address,uint256)": { + "params": { + "dst": "The address of the destination account", + "rawAmount": "The number of tokens to transfer" + }, + "return": "Whether or not the transfer succeeded" + }, + "transferFrom(address,address,uint256)": { + "params": { + "dst": "The address of the destination account", + "rawAmount": "The number of tokens to transfer", + "src": "The address of the source account" + }, + "return": "Whether or not the transfer succeeded" + } + } + }, + "userdoc": { + "methods": { + "allowance(address,address)": { + "notice": "Get the number of tokens `spender` is approved to spend on behalf of `account`" + }, + "approve(address,uint256)": { + "notice": "Approve `spender` to transfer up to `amount` from `src`" + }, + "balanceOf(address)": { + "notice": "Get the number of tokens held by the `account`" + }, + "constructor": "Construct a new Comp token", + "delegate(address)": { + "notice": "Delegate votes from `msg.sender` to `delegatee`" + }, + "delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)": { + "notice": "Delegates votes from signatory to `delegatee`" + }, + "getCurrentVotes(address)": { + "notice": "Gets the current votes balance for `account`" + }, + "getPriorVotes(address,uint256)": { + "notice": "Determine the prior number of votes for an account as of a block number" + }, + "transfer(address,uint256)": { + "notice": "Transfer `amount` tokens from `msg.sender` to `dst`" + }, + "transferFrom(address,address,uint256)": { + "notice": "Transfer `amount` tokens from `src` to `dst`" + } + } + } +} \ No newline at end of file diff --git a/omgx_examples/compound-simple/build-ovm/CompInterface.json b/omgx_examples/compound-simple/build-ovm/CompInterface.json new file mode 100644 index 000000000000..fe75ee70b7ba --- /dev/null +++ b/omgx_examples/compound-simple/build-ovm/CompInterface.json @@ -0,0 +1,6239 @@ +{ + "contractName": "CompInterface", + "abi": [ + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + } + ], + "name": "getPriorVotes", + "outputs": [ + { + "internalType": "uint96", + "name": "", + "type": "uint96" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.16-develop.2020.11.10+ovm+commit.00cdd204\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPriorVotes\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/GovernorBravoInterfaces.sol\":\"CompInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"project:/contracts/GovernorBravoInterfaces.sol\":{\"keccak256\":\"0x74cb8a82fef2906cbee7c96d7aa72e46b01df83859704a35a4a63d3aa9493718\",\"urls\":[\"bzz-raw://82b0c9f82c46927ea7128afc44921d60af23461da7f6d0c29484b5b92ad2b87a\",\"dweb:/ipfs/QmbNHAYEhhXzmdsmfMPLuGAGceq9oHD9AaDmyrnVaXPrhh\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.5.16;\npragma experimental ABIEncoderV2;\n\n\ncontract GovernorBravoEvents {\n /// @notice An event emitted when a new proposal is created\n event ProposalCreated(uint id, address proposer, address[] targets, uint[] values, string[] signatures, bytes[] calldatas, uint startBlock, uint endBlock, string description);\n\n /// @notice An event emitted when a vote has been cast on a proposal\n /// @param voter The address which casted a vote\n /// @param proposalId The proposal id which was voted on\n /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\n /// @param votes Number of votes which were cast by the voter\n /// @param reason The reason given for the vote by the voter\n event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\n\n /// @notice An event emitted when a proposal has been canceled\n event ProposalCanceled(uint id);\n\n /// @notice An event emitted when a proposal has been queued in the Timelock\n event ProposalQueued(uint id, uint eta);\n\n /// @notice An event emitted when a proposal has been executed in the Timelock\n event ProposalExecuted(uint id);\n\n /// @notice An event emitted when the voting delay is set\n event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\n\n /// @notice An event emitted when the voting period is set\n event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\n\n /// @notice Emitted when implementation is changed\n event NewImplementation(address oldImplementation, address newImplementation);\n\n /// @notice Emitted when proposal threshold is set\n event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\n\n /// @notice Emitted when pendingAdmin is changed\n event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\n\n /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\n event NewAdmin(address oldAdmin, address newAdmin);\n}\n\ncontract GovernorBravoDelegatorStorage {\n /// @notice Administrator for this contract\n address public admin;\n\n /// @notice Pending administrator for this contract\n address public pendingAdmin;\n\n /// @notice Active brains of Governor\n address public implementation;\n}\n\n\n/**\n * @title Storage for Governor Bravo Delegate\n * @notice For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\n * GovernorBravoDelegateStorageVX.\n */\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\n\n /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\n uint public votingDelay;\n\n /// @notice The duration of voting on a proposal, in blocks\n uint public votingPeriod;\n\n /// @notice The number of votes required in order for a voter to become a proposer\n uint public proposalThreshold;\n\n /// @notice Initial proposal id set at become\n uint public initialProposalId;\n\n /// @notice The total number of proposals\n uint public proposalCount;\n\n /// @notice The address of the Compound Protocol Timelock\n TimelockInterface public timelock;\n\n /// @notice The address of the Compound governance token\n CompInterface public comp;\n\n /// @notice The official record of all proposals ever proposed\n mapping (uint => Proposal) public proposals;\n\n /// @notice The latest proposal for each proposer\n mapping (address => uint) public latestProposalIds;\n\n\n struct Proposal {\n /// @notice Unique id for looking up a proposal\n uint id;\n\n /// @notice Creator of the proposal\n address proposer;\n\n /// @notice The timestamp that the proposal will be available for execution, set once the vote succeeds\n uint eta;\n\n /// @notice the ordered list of target addresses for calls to be made\n address[] targets;\n\n /// @notice The ordered list of values (i.e. msg.value) to be passed to the calls to be made\n uint[] values;\n\n /// @notice The ordered list of function signatures to be called\n string[] signatures;\n\n /// @notice The ordered list of calldata to be passed to each call\n bytes[] calldatas;\n\n /// @notice The block at which voting begins: holders must delegate their votes prior to this block\n uint startBlock;\n\n /// @notice The block at which voting ends: votes must be cast prior to this block\n uint endBlock;\n\n /// @notice Current number of votes in favor of this proposal\n uint forVotes;\n\n /// @notice Current number of votes in opposition to this proposal\n uint againstVotes;\n\n /// @notice Current number of votes for abstaining for this proposal\n uint abstainVotes;\n\n /// @notice Flag marking whether the proposal has been canceled\n bool canceled;\n\n /// @notice Flag marking whether the proposal has been executed\n bool executed;\n\n /// @notice Receipts of ballots for the entire set of voters\n mapping (address => Receipt) receipts;\n }\n\n /// @notice Ballot receipt record for a voter\n struct Receipt {\n /// @notice Whether or not a vote has been cast\n bool hasVoted;\n\n /// @notice Whether or not the voter supports the proposal or abstains\n uint8 support;\n\n /// @notice The number of votes the voter had, which were cast\n uint96 votes;\n }\n\n /// @notice Possible states that a proposal may be in\n enum ProposalState {\n Pending,\n Active,\n Canceled,\n Defeated,\n Succeeded,\n Queued,\n Expired,\n Executed\n }\n}\n\ninterface TimelockInterface {\n function delay() external view returns (uint);\n function GRACE_PERIOD() external view returns (uint);\n function acceptAdmin() external;\n function queuedTransactions(bytes32 hash) external view returns (bool);\n function queueTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external returns (bytes32);\n function cancelTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external;\n function executeTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external payable returns (bytes memory);\n}\n\ninterface CompInterface {\n function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\n}\n", + "sourcePath": "/Users/janliphardt/Documents/GitHub/optimism/omgx_examples/compound-simple/contracts/GovernorBravoInterfaces.sol", + "ast": { + "absolutePath": "project:/contracts/GovernorBravoInterfaces.sol", + "exportedSymbols": { + "CompInterface": [ + 2636 + ], + "GovernorBravoDelegateStorageV1": [ + 2562 + ], + "GovernorBravoDelegatorStorage": [ + 2484 + ], + "GovernorBravoEvents": [ + 2477 + ], + "TimelockInterface": [ + 2626 + ] + }, + "id": 2637, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2389, + "literals": [ + "solidity", + "^", + "0.5", + ".16" + ], + "nodeType": "PragmaDirective", + "src": "0:24:3" + }, + { + "id": 2390, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "25:33:3" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2477, + "linearizedBaseContracts": [ + 2477 + ], + "name": "GovernorBravoEvents", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": "@notice An event emitted when a new proposal is created", + "id": 2414, + "name": "ProposalCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 2413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2392, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "182:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2391, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "182:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2394, + "indexed": false, + "name": "proposer", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "191:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2393, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "191:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2397, + "indexed": false, + "name": "targets", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "209:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2395, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "209:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2396, + "length": null, + "nodeType": "ArrayTypeName", + "src": "209:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2400, + "indexed": false, + "name": "values", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "228:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2398, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "228:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2399, + "length": null, + "nodeType": "ArrayTypeName", + "src": "228:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2403, + "indexed": false, + "name": "signatures", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "243:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 2401, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "243:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 2402, + "length": null, + "nodeType": "ArrayTypeName", + "src": "243:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2406, + "indexed": false, + "name": "calldatas", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "264:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 2404, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "264:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 2405, + "length": null, + "nodeType": "ArrayTypeName", + "src": "264:7:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2408, + "indexed": false, + "name": "startBlock", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "283:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2407, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "283:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2410, + "indexed": false, + "name": "endBlock", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "300:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2409, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "300:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2412, + "indexed": false, + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "315:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2411, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "315:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "181:153:3" + }, + "src": "160:175:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when a vote has been cast on a proposal\n @param voter The address which casted a vote\n @param proposalId The proposal id which was voted on\n @param support Support value for the vote. 0=against, 1=for, 2=abstain\n @param votes Number of votes which were cast by the voter\n @param reason The reason given for the vote by the voter", + "id": 2426, + "name": "VoteCast", + "nodeType": "EventDefinition", + "parameters": { + "id": 2425, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2416, + "indexed": true, + "name": "voter", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "753:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2415, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2418, + "indexed": false, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "776:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2417, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "776:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2420, + "indexed": false, + "name": "support", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "793:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2419, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "793:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2422, + "indexed": false, + "name": "votes", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "808:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2421, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "808:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2424, + "indexed": false, + "name": "reason", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "820:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2423, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "820:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:82:3" + }, + "src": "738:97:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been canceled", + "id": 2430, + "name": "ProposalCanceled", + "nodeType": "EventDefinition", + "parameters": { + "id": 2429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2428, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2430, + "src": "931:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2427, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "931:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "930:9:3" + }, + "src": "908:32:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been queued in the Timelock", + "id": 2436, + "name": "ProposalQueued", + "nodeType": "EventDefinition", + "parameters": { + "id": 2435, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2432, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2436, + "src": "1048:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2431, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1048:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2434, + "indexed": false, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2436, + "src": "1057:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2433, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1057:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1047:19:3" + }, + "src": "1027:40:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been executed in the Timelock", + "id": 2440, + "name": "ProposalExecuted", + "nodeType": "EventDefinition", + "parameters": { + "id": 2439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2438, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2440, + "src": "1179:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2437, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1179:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1178:9:3" + }, + "src": "1156:32:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when the voting delay is set", + "id": 2446, + "name": "VotingDelaySet", + "nodeType": "EventDefinition", + "parameters": { + "id": 2445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2442, + "indexed": false, + "name": "oldVotingDelay", + "nodeType": "VariableDeclaration", + "scope": 2446, + "src": "1277:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2441, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1277:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2444, + "indexed": false, + "name": "newVotingDelay", + "nodeType": "VariableDeclaration", + "scope": 2446, + "src": "1298:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2443, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1298:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1276:42:3" + }, + "src": "1256:63:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when the voting period is set", + "id": 2452, + "name": "VotingPeriodSet", + "nodeType": "EventDefinition", + "parameters": { + "id": 2451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2448, + "indexed": false, + "name": "oldVotingPeriod", + "nodeType": "VariableDeclaration", + "scope": 2452, + "src": "1410:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2447, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1410:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2450, + "indexed": false, + "name": "newVotingPeriod", + "nodeType": "VariableDeclaration", + "scope": 2452, + "src": "1432:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2449, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1432:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1409:44:3" + }, + "src": "1388:66:3" + }, + { + "anonymous": false, + "documentation": "@notice Emitted when implementation is changed", + "id": 2458, + "name": "NewImplementation", + "nodeType": "EventDefinition", + "parameters": { + "id": 2457, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2454, + "indexed": false, + "name": "oldImplementation", + "nodeType": "VariableDeclaration", + "scope": 2458, + "src": "1539:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2453, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1539:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2456, + "indexed": false, + "name": "newImplementation", + "nodeType": "VariableDeclaration", + "scope": 2458, + "src": "1566:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2455, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1566:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1538:54:3" + }, + "src": "1515:78:3" + }, + { + "anonymous": false, + "documentation": "@notice Emitted when proposal threshold is set", + "id": 2464, + "name": "ProposalThresholdSet", + "nodeType": "EventDefinition", + "parameters": { + "id": 2463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2460, + "indexed": false, + "name": "oldProposalThreshold", + "nodeType": "VariableDeclaration", + "scope": 2464, + "src": "1681:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2459, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1681:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2462, + "indexed": false, + "name": "newProposalThreshold", + "nodeType": "VariableDeclaration", + "scope": 2464, + "src": "1708:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2461, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1708:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1680:54:3" + }, + "src": "1654:81:3" + }, + { + "anonymous": false, + "documentation": "@notice Emitted when pendingAdmin is changed", + "id": 2470, + "name": "NewPendingAdmin", + "nodeType": "EventDefinition", + "parameters": { + "id": 2469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2466, + "indexed": false, + "name": "oldPendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 2470, + "src": "1816:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2465, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1816:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2468, + "indexed": false, + "name": "newPendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 2470, + "src": "1841:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2467, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1841:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1815:50:3" + }, + "src": "1794:72:3" + }, + { + "anonymous": false, + "documentation": "@notice Emitted when pendingAdmin is accepted, which means admin is updated", + "id": 2476, + "name": "NewAdmin", + "nodeType": "EventDefinition", + "parameters": { + "id": 2475, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2472, + "indexed": false, + "name": "oldAdmin", + "nodeType": "VariableDeclaration", + "scope": 2476, + "src": "1971:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2471, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1971:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2474, + "indexed": false, + "name": "newAdmin", + "nodeType": "VariableDeclaration", + "scope": 2476, + "src": "1989:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2473, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1989:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1970:36:3" + }, + "src": "1956:51:3" + } + ], + "scope": 2637, + "src": "61:1948:3" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2484, + "linearizedBaseContracts": [ + 2484 + ], + "name": "GovernorBravoDelegatorStorage", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 2479, + "name": "admin", + "nodeType": "VariableDeclaration", + "scope": 2484, + "src": "2104:20:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2478, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2104:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2481, + "name": "pendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 2484, + "src": "2187:27:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2480, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2187:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2483, + "name": "implementation", + "nodeType": "VariableDeclaration", + "scope": 2484, + "src": "2263:29:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2263:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + } + ], + "scope": 2637, + "src": "2011:284:3" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2485, + "name": "GovernorBravoDelegatorStorage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2484, + "src": "2617:29:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorBravoDelegatorStorage_$2484", + "typeString": "contract GovernorBravoDelegatorStorage" + } + }, + "id": 2486, + "nodeType": "InheritanceSpecifier", + "src": "2617:29:3" + } + ], + "contractDependencies": [ + 2484 + ], + "contractKind": "contract", + "documentation": "@title Storage for Governor Bravo Delegate\n@notice For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\ncontract which implements GovernorBravoDelegateStorageV1 and following the naming convention\nGovernorBravoDelegateStorageVX.", + "fullyImplemented": true, + "id": 2562, + "linearizedBaseContracts": [ + 2562, + 2484 + ], + "name": "GovernorBravoDelegateStorageV1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 2488, + "name": "votingDelay", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "2749:23:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2487, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2749:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2490, + "name": "votingPeriod", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "2843:24:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2489, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2843:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2492, + "name": "proposalThreshold", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "2961:29:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2491, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2961:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2494, + "name": "initialProposalId", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3047:29:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2493, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3047:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2496, + "name": "proposalCount", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3129:25:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2495, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3129:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2498, + "name": "timelock", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3223:33:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + }, + "typeName": { + "contractScope": null, + "id": 2497, + "name": "TimelockInterface", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2626, + "src": "3223:17:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2500, + "name": "comp", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3324:25:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CompInterface_$2636", + "typeString": "contract CompInterface" + }, + "typeName": { + "contractScope": null, + "id": 2499, + "name": "CompInterface", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2636, + "src": "3324:13:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CompInterface_$2636", + "typeString": "contract CompInterface" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2504, + "name": "proposals", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3423:43:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$2545_storage_$", + "typeString": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)" + }, + "typeName": { + "id": 2503, + "keyType": { + "id": 2501, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3432:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "3423:26:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$2545_storage_$", + "typeString": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)" + }, + "valueType": { + "contractScope": null, + "id": 2502, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2545, + "src": "3440:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2508, + "name": "latestProposalIds", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3527:50:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 2507, + "keyType": { + "id": 2505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3536:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3527:25:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 2506, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3547:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "canonicalName": "GovernorBravoDelegateStorageV1.Proposal", + "id": 2545, + "members": [ + { + "constant": false, + "id": 2510, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "3667:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2509, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3667:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2512, + "name": "proposer", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "3729:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3729:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2514, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "3868:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2513, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3868:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2517, + "name": "targets", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "3965:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2515, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3965:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2516, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3965:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2520, + "name": "values", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4094:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2518, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4094:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2519, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4094:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2523, + "name": "signatures", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4191:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 2521, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4191:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 2522, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4191:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2526, + "name": "calldatas", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4296:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 2524, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4296:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 2525, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4296:7:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2528, + "name": "startBlock", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4432:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2527, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4432:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2530, + "name": "endBlock", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4549:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2529, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4549:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2532, + "name": "forVotes", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4643:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2531, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4643:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2534, + "name": "againstVotes", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4742:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2533, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4742:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2536, + "name": "abstainVotes", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4847:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2535, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4847:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2538, + "name": "canceled", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4947:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2537, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4947:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2540, + "name": "executed", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "5043:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5043:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2544, + "name": "receipts", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "5136:37:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Receipt_$2552_storage_$", + "typeString": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)" + }, + "typeName": { + "id": 2543, + "keyType": { + "id": 2541, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5145:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5136:28:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Receipt_$2552_storage_$", + "typeString": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)" + }, + "valueType": { + "contractScope": null, + "id": 2542, + "name": "Receipt", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2552, + "src": "5156:7:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$2552_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Receipt" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Proposal", + "nodeType": "StructDefinition", + "scope": 2562, + "src": "3585:1595:3", + "visibility": "public" + }, + { + "canonicalName": "GovernorBravoDelegateStorageV1.Receipt", + "id": 2552, + "members": [ + { + "constant": false, + "id": 2547, + "name": "hasVoted", + "nodeType": "VariableDeclaration", + "scope": 2552, + "src": "5317:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2546, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5317:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2549, + "name": "support", + "nodeType": "VariableDeclaration", + "scope": 2552, + "src": "5420:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2548, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5420:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2551, + "name": "votes", + "nodeType": "VariableDeclaration", + "scope": 2552, + "src": "5515:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 2550, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "5515:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Receipt", + "nodeType": "StructDefinition", + "scope": 2562, + "src": "5236:298:3", + "visibility": "public" + }, + { + "canonicalName": "GovernorBravoDelegateStorageV1.ProposalState", + "id": 2561, + "members": [ + { + "id": 2553, + "name": "Pending", + "nodeType": "EnumValue", + "src": "5627:7:3" + }, + { + "id": 2554, + "name": "Active", + "nodeType": "EnumValue", + "src": "5644:6:3" + }, + { + "id": 2555, + "name": "Canceled", + "nodeType": "EnumValue", + "src": "5660:8:3" + }, + { + "id": 2556, + "name": "Defeated", + "nodeType": "EnumValue", + "src": "5678:8:3" + }, + { + "id": 2557, + "name": "Succeeded", + "nodeType": "EnumValue", + "src": "5696:9:3" + }, + { + "id": 2558, + "name": "Queued", + "nodeType": "EnumValue", + "src": "5715:6:3" + }, + { + "id": 2559, + "name": "Expired", + "nodeType": "EnumValue", + "src": "5731:7:3" + }, + { + "id": 2560, + "name": "Executed", + "nodeType": "EnumValue", + "src": "5748:8:3" + } + ], + "name": "ProposalState", + "nodeType": "EnumDefinition", + "src": "5598:164:3" + } + ], + "scope": 2637, + "src": "2574:3190:3" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 2626, + "linearizedBaseContracts": [ + 2626 + ], + "name": "TimelockInterface", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 2567, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "delay", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2563, + "nodeType": "ParameterList", + "parameters": [], + "src": "5814:2:3" + }, + "returnParameters": { + "id": 2566, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2565, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2567, + "src": "5840:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2564, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5840:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5839:6:3" + }, + "scope": 2626, + "src": "5800:46:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2572, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "GRACE_PERIOD", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2568, + "nodeType": "ParameterList", + "parameters": [], + "src": "5872:2:3" + }, + "returnParameters": { + "id": 2571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2570, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2572, + "src": "5898:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2569, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5898:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5897:6:3" + }, + "scope": 2626, + "src": "5851:53:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2575, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "acceptAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2573, + "nodeType": "ParameterList", + "parameters": [], + "src": "5929:2:3" + }, + "returnParameters": { + "id": 2574, + "nodeType": "ParameterList", + "parameters": [], + "src": "5940:0:3" + }, + "scope": 2626, + "src": "5909:32:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2582, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "queuedTransactions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2577, + "name": "hash", + "nodeType": "VariableDeclaration", + "scope": 2582, + "src": "5974:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2576, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5974:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5973:14:3" + }, + "returnParameters": { + "id": 2581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2580, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2582, + "src": "6011:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2579, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6011:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6010:6:3" + }, + "scope": 2626, + "src": "5946:71:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2597, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "queueTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2584, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6048:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6048:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2586, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6064:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2585, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6064:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2588, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6076:25:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2587, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6076:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2590, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6103:19:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2589, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6103:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2592, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6124:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2591, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6124:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6047:86:3" + }, + "returnParameters": { + "id": 2596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2595, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6152:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2594, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6152:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6151:9:3" + }, + "scope": 2626, + "src": "6022:139:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2610, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "cancelTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2599, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6193:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2598, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6193:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2601, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6209:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2600, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6209:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2603, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6221:25:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2602, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6221:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2605, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6248:19:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2604, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6248:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2607, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6269:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2606, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6269:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6192:86:3" + }, + "returnParameters": { + "id": 2609, + "nodeType": "ParameterList", + "parameters": [], + "src": "6287:0:3" + }, + "scope": 2626, + "src": "6166:122:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2625, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "executeTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2612, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6321:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2611, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6321:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2614, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6337:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2613, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6337:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2616, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6349:25:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2615, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6349:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2618, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6376:19:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2617, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6376:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2620, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6397:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2619, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6397:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6320:86:3" + }, + "returnParameters": { + "id": 2624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2623, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6433:12:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2622, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6433:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6432:14:3" + }, + "scope": 2626, + "src": "6293:154:3", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2637, + "src": "5766:683:3" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 2636, + "linearizedBaseContracts": [ + 2636 + ], + "name": "CompInterface", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 2635, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPriorVotes", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2631, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2628, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 2635, + "src": "6504:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2627, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6504:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2630, + "name": "blockNumber", + "nodeType": "VariableDeclaration", + "scope": 2635, + "src": "6521:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2629, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6521:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6503:35:3" + }, + "returnParameters": { + "id": 2634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2633, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2635, + "src": "6562:6:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 2632, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "6562:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6561:8:3" + }, + "scope": 2636, + "src": "6481:89:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2637, + "src": "6451:121:3" + } + ], + "src": "0:6573:3" + }, + "legacyAST": { + "attributes": { + "absolutePath": "project:/contracts/GovernorBravoInterfaces.sol", + "exportedSymbols": { + "CompInterface": [ + 2636 + ], + "GovernorBravoDelegateStorageV1": [ + 2562 + ], + "GovernorBravoDelegatorStorage": [ + 2484 + ], + "GovernorBravoEvents": [ + 2477 + ], + "TimelockInterface": [ + 2626 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.5", + ".16" + ] + }, + "id": 2389, + "name": "PragmaDirective", + "src": "0:24:3" + }, + { + "attributes": { + "literals": [ + "experimental", + "ABIEncoderV2" + ] + }, + "id": 2390, + "name": "PragmaDirective", + "src": "25:33:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2477 + ], + "name": "GovernorBravoEvents", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a new proposal is created", + "name": "ProposalCreated" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "id", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2391, + "name": "ElementaryTypeName", + "src": "182:4:3" + } + ], + "id": 2392, + "name": "VariableDeclaration", + "src": "182:7:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "proposer", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2393, + "name": "ElementaryTypeName", + "src": "191:7:3" + } + ], + "id": 2394, + "name": "VariableDeclaration", + "src": "191:16:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "targets", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "address[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "address[]" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2395, + "name": "ElementaryTypeName", + "src": "209:7:3" + } + ], + "id": 2396, + "name": "ArrayTypeName", + "src": "209:9:3" + } + ], + "id": 2397, + "name": "VariableDeclaration", + "src": "209:17:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "values", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "uint256[]" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2398, + "name": "ElementaryTypeName", + "src": "228:4:3" + } + ], + "id": 2399, + "name": "ArrayTypeName", + "src": "228:6:3" + } + ], + "id": 2400, + "name": "VariableDeclaration", + "src": "228:13:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "signatures", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "string[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "string[]" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2401, + "name": "ElementaryTypeName", + "src": "243:6:3" + } + ], + "id": 2402, + "name": "ArrayTypeName", + "src": "243:8:3" + } + ], + "id": 2403, + "name": "VariableDeclaration", + "src": "243:19:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "calldatas", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "bytes[]" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2404, + "name": "ElementaryTypeName", + "src": "264:5:3" + } + ], + "id": 2405, + "name": "ArrayTypeName", + "src": "264:7:3" + } + ], + "id": 2406, + "name": "VariableDeclaration", + "src": "264:17:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "startBlock", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2407, + "name": "ElementaryTypeName", + "src": "283:4:3" + } + ], + "id": 2408, + "name": "VariableDeclaration", + "src": "283:15:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "endBlock", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2409, + "name": "ElementaryTypeName", + "src": "300:4:3" + } + ], + "id": 2410, + "name": "VariableDeclaration", + "src": "300:13:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "description", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2411, + "name": "ElementaryTypeName", + "src": "315:6:3" + } + ], + "id": 2412, + "name": "VariableDeclaration", + "src": "315:18:3" + } + ], + "id": 2413, + "name": "ParameterList", + "src": "181:153:3" + } + ], + "id": 2414, + "name": "EventDefinition", + "src": "160:175:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a vote has been cast on a proposal\n @param voter The address which casted a vote\n @param proposalId The proposal id which was voted on\n @param support Support value for the vote. 0=against, 1=for, 2=abstain\n @param votes Number of votes which were cast by the voter\n @param reason The reason given for the vote by the voter", + "name": "VoteCast" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "voter", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2415, + "name": "ElementaryTypeName", + "src": "753:7:3" + } + ], + "id": 2416, + "name": "VariableDeclaration", + "src": "753:21:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "proposalId", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2417, + "name": "ElementaryTypeName", + "src": "776:4:3" + } + ], + "id": 2418, + "name": "VariableDeclaration", + "src": "776:15:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "support", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 2419, + "name": "ElementaryTypeName", + "src": "793:5:3" + } + ], + "id": 2420, + "name": "VariableDeclaration", + "src": "793:13:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "votes", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2421, + "name": "ElementaryTypeName", + "src": "808:4:3" + } + ], + "id": 2422, + "name": "VariableDeclaration", + "src": "808:10:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "reason", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2423, + "name": "ElementaryTypeName", + "src": "820:6:3" + } + ], + "id": 2424, + "name": "VariableDeclaration", + "src": "820:13:3" + } + ], + "id": 2425, + "name": "ParameterList", + "src": "752:82:3" + } + ], + "id": 2426, + "name": "EventDefinition", + "src": "738:97:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been canceled", + "name": "ProposalCanceled" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "id", + "scope": 2430, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2427, + "name": "ElementaryTypeName", + "src": "931:4:3" + } + ], + "id": 2428, + "name": "VariableDeclaration", + "src": "931:7:3" + } + ], + "id": 2429, + "name": "ParameterList", + "src": "930:9:3" + } + ], + "id": 2430, + "name": "EventDefinition", + "src": "908:32:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been queued in the Timelock", + "name": "ProposalQueued" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "id", + "scope": 2436, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2431, + "name": "ElementaryTypeName", + "src": "1048:4:3" + } + ], + "id": 2432, + "name": "VariableDeclaration", + "src": "1048:7:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "eta", + "scope": 2436, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2433, + "name": "ElementaryTypeName", + "src": "1057:4:3" + } + ], + "id": 2434, + "name": "VariableDeclaration", + "src": "1057:8:3" + } + ], + "id": 2435, + "name": "ParameterList", + "src": "1047:19:3" + } + ], + "id": 2436, + "name": "EventDefinition", + "src": "1027:40:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been executed in the Timelock", + "name": "ProposalExecuted" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "id", + "scope": 2440, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2437, + "name": "ElementaryTypeName", + "src": "1179:4:3" + } + ], + "id": 2438, + "name": "VariableDeclaration", + "src": "1179:7:3" + } + ], + "id": 2439, + "name": "ParameterList", + "src": "1178:9:3" + } + ], + "id": 2440, + "name": "EventDefinition", + "src": "1156:32:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when the voting delay is set", + "name": "VotingDelaySet" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldVotingDelay", + "scope": 2446, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2441, + "name": "ElementaryTypeName", + "src": "1277:4:3" + } + ], + "id": 2442, + "name": "VariableDeclaration", + "src": "1277:19:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newVotingDelay", + "scope": 2446, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2443, + "name": "ElementaryTypeName", + "src": "1298:4:3" + } + ], + "id": 2444, + "name": "VariableDeclaration", + "src": "1298:19:3" + } + ], + "id": 2445, + "name": "ParameterList", + "src": "1276:42:3" + } + ], + "id": 2446, + "name": "EventDefinition", + "src": "1256:63:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when the voting period is set", + "name": "VotingPeriodSet" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldVotingPeriod", + "scope": 2452, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2447, + "name": "ElementaryTypeName", + "src": "1410:4:3" + } + ], + "id": 2448, + "name": "VariableDeclaration", + "src": "1410:20:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newVotingPeriod", + "scope": 2452, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2449, + "name": "ElementaryTypeName", + "src": "1432:4:3" + } + ], + "id": 2450, + "name": "VariableDeclaration", + "src": "1432:20:3" + } + ], + "id": 2451, + "name": "ParameterList", + "src": "1409:44:3" + } + ], + "id": 2452, + "name": "EventDefinition", + "src": "1388:66:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice Emitted when implementation is changed", + "name": "NewImplementation" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldImplementation", + "scope": 2458, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2453, + "name": "ElementaryTypeName", + "src": "1539:7:3" + } + ], + "id": 2454, + "name": "VariableDeclaration", + "src": "1539:25:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newImplementation", + "scope": 2458, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2455, + "name": "ElementaryTypeName", + "src": "1566:7:3" + } + ], + "id": 2456, + "name": "VariableDeclaration", + "src": "1566:25:3" + } + ], + "id": 2457, + "name": "ParameterList", + "src": "1538:54:3" + } + ], + "id": 2458, + "name": "EventDefinition", + "src": "1515:78:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice Emitted when proposal threshold is set", + "name": "ProposalThresholdSet" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldProposalThreshold", + "scope": 2464, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2459, + "name": "ElementaryTypeName", + "src": "1681:4:3" + } + ], + "id": 2460, + "name": "VariableDeclaration", + "src": "1681:25:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newProposalThreshold", + "scope": 2464, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2461, + "name": "ElementaryTypeName", + "src": "1708:4:3" + } + ], + "id": 2462, + "name": "VariableDeclaration", + "src": "1708:25:3" + } + ], + "id": 2463, + "name": "ParameterList", + "src": "1680:54:3" + } + ], + "id": 2464, + "name": "EventDefinition", + "src": "1654:81:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice Emitted when pendingAdmin is changed", + "name": "NewPendingAdmin" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldPendingAdmin", + "scope": 2470, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2465, + "name": "ElementaryTypeName", + "src": "1816:7:3" + } + ], + "id": 2466, + "name": "VariableDeclaration", + "src": "1816:23:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newPendingAdmin", + "scope": 2470, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2467, + "name": "ElementaryTypeName", + "src": "1841:7:3" + } + ], + "id": 2468, + "name": "VariableDeclaration", + "src": "1841:23:3" + } + ], + "id": 2469, + "name": "ParameterList", + "src": "1815:50:3" + } + ], + "id": 2470, + "name": "EventDefinition", + "src": "1794:72:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice Emitted when pendingAdmin is accepted, which means admin is updated", + "name": "NewAdmin" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldAdmin", + "scope": 2476, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2471, + "name": "ElementaryTypeName", + "src": "1971:7:3" + } + ], + "id": 2472, + "name": "VariableDeclaration", + "src": "1971:16:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newAdmin", + "scope": 2476, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2473, + "name": "ElementaryTypeName", + "src": "1989:7:3" + } + ], + "id": 2474, + "name": "VariableDeclaration", + "src": "1989:16:3" + } + ], + "id": 2475, + "name": "ParameterList", + "src": "1970:36:3" + } + ], + "id": 2476, + "name": "EventDefinition", + "src": "1956:51:3" + } + ], + "id": 2477, + "name": "ContractDefinition", + "src": "61:1948:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2484 + ], + "name": "GovernorBravoDelegatorStorage", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "admin", + "scope": 2484, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2478, + "name": "ElementaryTypeName", + "src": "2104:7:3" + } + ], + "id": 2479, + "name": "VariableDeclaration", + "src": "2104:20:3" + }, + { + "attributes": { + "constant": false, + "name": "pendingAdmin", + "scope": 2484, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2480, + "name": "ElementaryTypeName", + "src": "2187:7:3" + } + ], + "id": 2481, + "name": "VariableDeclaration", + "src": "2187:27:3" + }, + { + "attributes": { + "constant": false, + "name": "implementation", + "scope": 2484, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2482, + "name": "ElementaryTypeName", + "src": "2263:7:3" + } + ], + "id": 2483, + "name": "VariableDeclaration", + "src": "2263:29:3" + } + ], + "id": 2484, + "name": "ContractDefinition", + "src": "2011:284:3" + }, + { + "attributes": { + "contractDependencies": [ + 2484 + ], + "contractKind": "contract", + "documentation": "@title Storage for Governor Bravo Delegate\n@notice For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\ncontract which implements GovernorBravoDelegateStorageV1 and following the naming convention\nGovernorBravoDelegateStorageVX.", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2562, + 2484 + ], + "name": "GovernorBravoDelegateStorageV1", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "GovernorBravoDelegatorStorage", + "referencedDeclaration": 2484, + "type": "contract GovernorBravoDelegatorStorage" + }, + "id": 2485, + "name": "UserDefinedTypeName", + "src": "2617:29:3" + } + ], + "id": 2486, + "name": "InheritanceSpecifier", + "src": "2617:29:3" + }, + { + "attributes": { + "constant": false, + "name": "votingDelay", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2487, + "name": "ElementaryTypeName", + "src": "2749:4:3" + } + ], + "id": 2488, + "name": "VariableDeclaration", + "src": "2749:23:3" + }, + { + "attributes": { + "constant": false, + "name": "votingPeriod", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2489, + "name": "ElementaryTypeName", + "src": "2843:4:3" + } + ], + "id": 2490, + "name": "VariableDeclaration", + "src": "2843:24:3" + }, + { + "attributes": { + "constant": false, + "name": "proposalThreshold", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2491, + "name": "ElementaryTypeName", + "src": "2961:4:3" + } + ], + "id": 2492, + "name": "VariableDeclaration", + "src": "2961:29:3" + }, + { + "attributes": { + "constant": false, + "name": "initialProposalId", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2493, + "name": "ElementaryTypeName", + "src": "3047:4:3" + } + ], + "id": 2494, + "name": "VariableDeclaration", + "src": "3047:29:3" + }, + { + "attributes": { + "constant": false, + "name": "proposalCount", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2495, + "name": "ElementaryTypeName", + "src": "3129:4:3" + } + ], + "id": 2496, + "name": "VariableDeclaration", + "src": "3129:25:3" + }, + { + "attributes": { + "constant": false, + "name": "timelock", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "contract TimelockInterface", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "TimelockInterface", + "referencedDeclaration": 2626, + "type": "contract TimelockInterface" + }, + "id": 2497, + "name": "UserDefinedTypeName", + "src": "3223:17:3" + } + ], + "id": 2498, + "name": "VariableDeclaration", + "src": "3223:33:3" + }, + { + "attributes": { + "constant": false, + "name": "comp", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "contract CompInterface", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "CompInterface", + "referencedDeclaration": 2636, + "type": "contract CompInterface" + }, + "id": 2499, + "name": "UserDefinedTypeName", + "src": "3324:13:3" + } + ], + "id": 2500, + "name": "VariableDeclaration", + "src": "3324:25:3" + }, + { + "attributes": { + "constant": false, + "name": "proposals", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2501, + "name": "ElementaryTypeName", + "src": "3432:4:3" + }, + { + "attributes": { + "contractScope": null, + "name": "Proposal", + "referencedDeclaration": 2545, + "type": "struct GovernorBravoDelegateStorageV1.Proposal" + }, + "id": 2502, + "name": "UserDefinedTypeName", + "src": "3440:8:3" + } + ], + "id": 2503, + "name": "Mapping", + "src": "3423:26:3" + } + ], + "id": 2504, + "name": "VariableDeclaration", + "src": "3423:43:3" + }, + { + "attributes": { + "constant": false, + "name": "latestProposalIds", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => uint256)", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2505, + "name": "ElementaryTypeName", + "src": "3536:7:3" + }, + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2506, + "name": "ElementaryTypeName", + "src": "3547:4:3" + } + ], + "id": 2507, + "name": "Mapping", + "src": "3527:25:3" + } + ], + "id": 2508, + "name": "VariableDeclaration", + "src": "3527:50:3" + }, + { + "attributes": { + "canonicalName": "GovernorBravoDelegateStorageV1.Proposal", + "name": "Proposal", + "scope": 2562, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "id", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2509, + "name": "ElementaryTypeName", + "src": "3667:4:3" + } + ], + "id": 2510, + "name": "VariableDeclaration", + "src": "3667:7:3" + }, + { + "attributes": { + "constant": false, + "name": "proposer", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2511, + "name": "ElementaryTypeName", + "src": "3729:7:3" + } + ], + "id": 2512, + "name": "VariableDeclaration", + "src": "3729:16:3" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2513, + "name": "ElementaryTypeName", + "src": "3868:4:3" + } + ], + "id": 2514, + "name": "VariableDeclaration", + "src": "3868:8:3" + }, + { + "attributes": { + "constant": false, + "name": "targets", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "address[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "address[]" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2515, + "name": "ElementaryTypeName", + "src": "3965:7:3" + } + ], + "id": 2516, + "name": "ArrayTypeName", + "src": "3965:9:3" + } + ], + "id": 2517, + "name": "VariableDeclaration", + "src": "3965:17:3" + }, + { + "attributes": { + "constant": false, + "name": "values", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "uint256[]" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2518, + "name": "ElementaryTypeName", + "src": "4094:4:3" + } + ], + "id": 2519, + "name": "ArrayTypeName", + "src": "4094:6:3" + } + ], + "id": 2520, + "name": "VariableDeclaration", + "src": "4094:13:3" + }, + { + "attributes": { + "constant": false, + "name": "signatures", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "string[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "string[]" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2521, + "name": "ElementaryTypeName", + "src": "4191:6:3" + } + ], + "id": 2522, + "name": "ArrayTypeName", + "src": "4191:8:3" + } + ], + "id": 2523, + "name": "VariableDeclaration", + "src": "4191:19:3" + }, + { + "attributes": { + "constant": false, + "name": "calldatas", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "bytes[]" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2524, + "name": "ElementaryTypeName", + "src": "4296:5:3" + } + ], + "id": 2525, + "name": "ArrayTypeName", + "src": "4296:7:3" + } + ], + "id": 2526, + "name": "VariableDeclaration", + "src": "4296:17:3" + }, + { + "attributes": { + "constant": false, + "name": "startBlock", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2527, + "name": "ElementaryTypeName", + "src": "4432:4:3" + } + ], + "id": 2528, + "name": "VariableDeclaration", + "src": "4432:15:3" + }, + { + "attributes": { + "constant": false, + "name": "endBlock", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2529, + "name": "ElementaryTypeName", + "src": "4549:4:3" + } + ], + "id": 2530, + "name": "VariableDeclaration", + "src": "4549:13:3" + }, + { + "attributes": { + "constant": false, + "name": "forVotes", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2531, + "name": "ElementaryTypeName", + "src": "4643:4:3" + } + ], + "id": 2532, + "name": "VariableDeclaration", + "src": "4643:13:3" + }, + { + "attributes": { + "constant": false, + "name": "againstVotes", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2533, + "name": "ElementaryTypeName", + "src": "4742:4:3" + } + ], + "id": 2534, + "name": "VariableDeclaration", + "src": "4742:17:3" + }, + { + "attributes": { + "constant": false, + "name": "abstainVotes", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2535, + "name": "ElementaryTypeName", + "src": "4847:4:3" + } + ], + "id": 2536, + "name": "VariableDeclaration", + "src": "4847:17:3" + }, + { + "attributes": { + "constant": false, + "name": "canceled", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2537, + "name": "ElementaryTypeName", + "src": "4947:4:3" + } + ], + "id": 2538, + "name": "VariableDeclaration", + "src": "4947:13:3" + }, + { + "attributes": { + "constant": false, + "name": "executed", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2539, + "name": "ElementaryTypeName", + "src": "5043:4:3" + } + ], + "id": 2540, + "name": "VariableDeclaration", + "src": "5043:13:3" + }, + { + "attributes": { + "constant": false, + "name": "receipts", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2541, + "name": "ElementaryTypeName", + "src": "5145:7:3" + }, + { + "attributes": { + "contractScope": null, + "name": "Receipt", + "referencedDeclaration": 2552, + "type": "struct GovernorBravoDelegateStorageV1.Receipt" + }, + "id": 2542, + "name": "UserDefinedTypeName", + "src": "5156:7:3" + } + ], + "id": 2543, + "name": "Mapping", + "src": "5136:28:3" + } + ], + "id": 2544, + "name": "VariableDeclaration", + "src": "5136:37:3" + } + ], + "id": 2545, + "name": "StructDefinition", + "src": "3585:1595:3" + }, + { + "attributes": { + "canonicalName": "GovernorBravoDelegateStorageV1.Receipt", + "name": "Receipt", + "scope": 2562, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "hasVoted", + "scope": 2552, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2546, + "name": "ElementaryTypeName", + "src": "5317:4:3" + } + ], + "id": 2547, + "name": "VariableDeclaration", + "src": "5317:13:3" + }, + { + "attributes": { + "constant": false, + "name": "support", + "scope": 2552, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 2548, + "name": "ElementaryTypeName", + "src": "5420:5:3" + } + ], + "id": 2549, + "name": "VariableDeclaration", + "src": "5420:13:3" + }, + { + "attributes": { + "constant": false, + "name": "votes", + "scope": 2552, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 2550, + "name": "ElementaryTypeName", + "src": "5515:6:3" + } + ], + "id": 2551, + "name": "VariableDeclaration", + "src": "5515:12:3" + } + ], + "id": 2552, + "name": "StructDefinition", + "src": "5236:298:3" + }, + { + "attributes": { + "canonicalName": "GovernorBravoDelegateStorageV1.ProposalState", + "name": "ProposalState" + }, + "children": [ + { + "attributes": { + "name": "Pending" + }, + "id": 2553, + "name": "EnumValue", + "src": "5627:7:3" + }, + { + "attributes": { + "name": "Active" + }, + "id": 2554, + "name": "EnumValue", + "src": "5644:6:3" + }, + { + "attributes": { + "name": "Canceled" + }, + "id": 2555, + "name": "EnumValue", + "src": "5660:8:3" + }, + { + "attributes": { + "name": "Defeated" + }, + "id": 2556, + "name": "EnumValue", + "src": "5678:8:3" + }, + { + "attributes": { + "name": "Succeeded" + }, + "id": 2557, + "name": "EnumValue", + "src": "5696:9:3" + }, + { + "attributes": { + "name": "Queued" + }, + "id": 2558, + "name": "EnumValue", + "src": "5715:6:3" + }, + { + "attributes": { + "name": "Expired" + }, + "id": 2559, + "name": "EnumValue", + "src": "5731:7:3" + }, + { + "attributes": { + "name": "Executed" + }, + "id": 2560, + "name": "EnumValue", + "src": "5748:8:3" + } + ], + "id": 2561, + "name": "EnumDefinition", + "src": "5598:164:3" + } + ], + "id": 2562, + "name": "ContractDefinition", + "src": "2574:3190:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 2626 + ], + "name": "TimelockInterface", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "delay", + "scope": 2626, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2563, + "name": "ParameterList", + "src": "5814:2:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2567, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2564, + "name": "ElementaryTypeName", + "src": "5840:4:3" + } + ], + "id": 2565, + "name": "VariableDeclaration", + "src": "5840:4:3" + } + ], + "id": 2566, + "name": "ParameterList", + "src": "5839:6:3" + } + ], + "id": 2567, + "name": "FunctionDefinition", + "src": "5800:46:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "GRACE_PERIOD", + "scope": 2626, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2568, + "name": "ParameterList", + "src": "5872:2:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2572, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2569, + "name": "ElementaryTypeName", + "src": "5898:4:3" + } + ], + "id": 2570, + "name": "VariableDeclaration", + "src": "5898:4:3" + } + ], + "id": 2571, + "name": "ParameterList", + "src": "5897:6:3" + } + ], + "id": 2572, + "name": "FunctionDefinition", + "src": "5851:53:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "acceptAdmin", + "scope": 2626, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2573, + "name": "ParameterList", + "src": "5929:2:3" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2574, + "name": "ParameterList", + "src": "5940:0:3" + } + ], + "id": 2575, + "name": "FunctionDefinition", + "src": "5909:32:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "queuedTransactions", + "scope": 2626, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "hash", + "scope": 2582, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2576, + "name": "ElementaryTypeName", + "src": "5974:7:3" + } + ], + "id": 2577, + "name": "VariableDeclaration", + "src": "5974:12:3" + } + ], + "id": 2578, + "name": "ParameterList", + "src": "5973:14:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2582, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2579, + "name": "ElementaryTypeName", + "src": "6011:4:3" + } + ], + "id": 2580, + "name": "VariableDeclaration", + "src": "6011:4:3" + } + ], + "id": 2581, + "name": "ParameterList", + "src": "6010:6:3" + } + ], + "id": 2582, + "name": "FunctionDefinition", + "src": "5946:71:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "queueTransaction", + "scope": 2626, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 2597, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2583, + "name": "ElementaryTypeName", + "src": "6048:7:3" + } + ], + "id": 2584, + "name": "VariableDeclaration", + "src": "6048:14:3" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 2597, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2585, + "name": "ElementaryTypeName", + "src": "6064:4:3" + } + ], + "id": 2586, + "name": "VariableDeclaration", + "src": "6064:10:3" + }, + { + "attributes": { + "constant": false, + "name": "signature", + "scope": 2597, + "stateVariable": false, + "storageLocation": "calldata", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2587, + "name": "ElementaryTypeName", + "src": "6076:6:3" + } + ], + "id": 2588, + "name": "VariableDeclaration", + "src": "6076:25:3" + }, + { + "attributes": { + "constant": false, + "name": "data", + "scope": 2597, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2589, + "name": "ElementaryTypeName", + "src": "6103:5:3" + } + ], + "id": 2590, + "name": "VariableDeclaration", + "src": "6103:19:3" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 2597, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2591, + "name": "ElementaryTypeName", + "src": "6124:4:3" + } + ], + "id": 2592, + "name": "VariableDeclaration", + "src": "6124:8:3" + } + ], + "id": 2593, + "name": "ParameterList", + "src": "6047:86:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2597, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2594, + "name": "ElementaryTypeName", + "src": "6152:7:3" + } + ], + "id": 2595, + "name": "VariableDeclaration", + "src": "6152:7:3" + } + ], + "id": 2596, + "name": "ParameterList", + "src": "6151:9:3" + } + ], + "id": 2597, + "name": "FunctionDefinition", + "src": "6022:139:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "cancelTransaction", + "scope": 2626, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 2610, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2598, + "name": "ElementaryTypeName", + "src": "6193:7:3" + } + ], + "id": 2599, + "name": "VariableDeclaration", + "src": "6193:14:3" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 2610, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2600, + "name": "ElementaryTypeName", + "src": "6209:4:3" + } + ], + "id": 2601, + "name": "VariableDeclaration", + "src": "6209:10:3" + }, + { + "attributes": { + "constant": false, + "name": "signature", + "scope": 2610, + "stateVariable": false, + "storageLocation": "calldata", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2602, + "name": "ElementaryTypeName", + "src": "6221:6:3" + } + ], + "id": 2603, + "name": "VariableDeclaration", + "src": "6221:25:3" + }, + { + "attributes": { + "constant": false, + "name": "data", + "scope": 2610, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2604, + "name": "ElementaryTypeName", + "src": "6248:5:3" + } + ], + "id": 2605, + "name": "VariableDeclaration", + "src": "6248:19:3" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 2610, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2606, + "name": "ElementaryTypeName", + "src": "6269:4:3" + } + ], + "id": 2607, + "name": "VariableDeclaration", + "src": "6269:8:3" + } + ], + "id": 2608, + "name": "ParameterList", + "src": "6192:86:3" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2609, + "name": "ParameterList", + "src": "6287:0:3" + } + ], + "id": 2610, + "name": "FunctionDefinition", + "src": "6166:122:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "executeTransaction", + "scope": 2626, + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 2625, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2611, + "name": "ElementaryTypeName", + "src": "6321:7:3" + } + ], + "id": 2612, + "name": "VariableDeclaration", + "src": "6321:14:3" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 2625, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2613, + "name": "ElementaryTypeName", + "src": "6337:4:3" + } + ], + "id": 2614, + "name": "VariableDeclaration", + "src": "6337:10:3" + }, + { + "attributes": { + "constant": false, + "name": "signature", + "scope": 2625, + "stateVariable": false, + "storageLocation": "calldata", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2615, + "name": "ElementaryTypeName", + "src": "6349:6:3" + } + ], + "id": 2616, + "name": "VariableDeclaration", + "src": "6349:25:3" + }, + { + "attributes": { + "constant": false, + "name": "data", + "scope": 2625, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2617, + "name": "ElementaryTypeName", + "src": "6376:5:3" + } + ], + "id": 2618, + "name": "VariableDeclaration", + "src": "6376:19:3" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 2625, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2619, + "name": "ElementaryTypeName", + "src": "6397:4:3" + } + ], + "id": 2620, + "name": "VariableDeclaration", + "src": "6397:8:3" + } + ], + "id": 2621, + "name": "ParameterList", + "src": "6320:86:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2625, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2622, + "name": "ElementaryTypeName", + "src": "6433:5:3" + } + ], + "id": 2623, + "name": "VariableDeclaration", + "src": "6433:12:3" + } + ], + "id": 2624, + "name": "ParameterList", + "src": "6432:14:3" + } + ], + "id": 2625, + "name": "FunctionDefinition", + "src": "6293:154:3" + } + ], + "id": 2626, + "name": "ContractDefinition", + "src": "5766:683:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 2636 + ], + "name": "CompInterface", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getPriorVotes", + "scope": 2636, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "account", + "scope": 2635, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2627, + "name": "ElementaryTypeName", + "src": "6504:7:3" + } + ], + "id": 2628, + "name": "VariableDeclaration", + "src": "6504:15:3" + }, + { + "attributes": { + "constant": false, + "name": "blockNumber", + "scope": 2635, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2629, + "name": "ElementaryTypeName", + "src": "6521:4:3" + } + ], + "id": 2630, + "name": "VariableDeclaration", + "src": "6521:16:3" + } + ], + "id": 2631, + "name": "ParameterList", + "src": "6503:35:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2635, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 2632, + "name": "ElementaryTypeName", + "src": "6562:6:3" + } + ], + "id": 2633, + "name": "VariableDeclaration", + "src": "6562:6:3" + } + ], + "id": 2634, + "name": "ParameterList", + "src": "6561:8:3" + } + ], + "id": 2635, + "name": "FunctionDefinition", + "src": "6481:89:3" + } + ], + "id": 2636, + "name": "ContractDefinition", + "src": "6451:121:3" + } + ], + "id": 2637, + "name": "SourceUnit", + "src": "0:6573:3" + }, + "compiler": { + "name": "solc", + "version": "0.5.16" + }, + "networks": {}, + "schemaVersion": "3.4.3", + "updatedAt": "2021-09-05T21:45:41.179Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/omgx_examples/compound-simple/build-ovm/GovernorBravoDelegate.json b/omgx_examples/compound-simple/build-ovm/GovernorBravoDelegate.json new file mode 100644 index 000000000000..efef4f6a8d98 --- /dev/null +++ b/omgx_examples/compound-simple/build-ovm/GovernorBravoDelegate.json @@ -0,0 +1,39185 @@ +{ + "contractName": "GovernorBravoDelegate", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "NewAdmin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldImplementation", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newImplementation", + "type": "address" + } + ], + "name": "NewImplementation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldPendingAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newPendingAdmin", + "type": "address" + } + ], + "name": "NewPendingAdmin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "ProposalCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "proposer", + "type": "address" + }, + { + "indexed": false, + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "string[]", + "name": "signatures", + "type": "string[]" + }, + { + "indexed": false, + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "startBlock", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "endBlock", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "ProposalCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "ProposalExecuted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "ProposalQueued", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldProposalThreshold", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newProposalThreshold", + "type": "uint256" + } + ], + "name": "ProposalThresholdSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "votes", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "VoteCast", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldVotingDelay", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newVotingDelay", + "type": "uint256" + } + ], + "name": "VotingDelaySet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldVotingPeriod", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newVotingPeriod", + "type": "uint256" + } + ], + "name": "VotingPeriodSet", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "BALLOT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "DOMAIN_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "MAX_PROPOSAL_THRESHOLD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "MAX_VOTING_DELAY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "MAX_VOTING_PERIOD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "MIN_PROPOSAL_THRESHOLD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "MIN_VOTING_DELAY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "MIN_VOTING_PERIOD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "admin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "comp", + "outputs": [ + { + "internalType": "contract CompInterface", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "implementation", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "initialProposalId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "latestProposalIds", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "pendingAdmin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "proposalCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "proposalMaxOperations", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "proposalThreshold", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "proposals", + "outputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "address", + "name": "proposer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startBlock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endBlock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "forVotes", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "againstVotes", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "abstainVotes", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "canceled", + "type": "bool" + }, + { + "internalType": "bool", + "name": "executed", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "quorumVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "timelock", + "outputs": [ + { + "internalType": "contract TimelockInterface", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "votingDelay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "votingPeriod", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "timelock_", + "type": "address" + }, + { + "internalType": "address", + "name": "comp_", + "type": "address" + }, + { + "internalType": "uint256", + "name": "votingPeriod_", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "votingDelay_", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "proposalThreshold_", + "type": "uint256" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "string[]", + "name": "signatures", + "type": "string[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "propose", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "queue", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "execute", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "cancel", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "getActions", + "outputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "string[]", + "name": "signatures", + "type": "string[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "voter", + "type": "address" + } + ], + "name": "getReceipt", + "outputs": [ + { + "components": [ + { + "internalType": "bool", + "name": "hasVoted", + "type": "bool" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "uint96", + "name": "votes", + "type": "uint96" + } + ], + "internalType": "struct GovernorBravoDelegateStorageV1.Receipt", + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "state", + "outputs": [ + { + "internalType": "enum GovernorBravoDelegateStorageV1.ProposalState", + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + } + ], + "name": "castVote", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "castVoteWithReason", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "castVoteBySig", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "newVotingDelay", + "type": "uint256" + } + ], + "name": "_setVotingDelay", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "newVotingPeriod", + "type": "uint256" + } + ], + "name": "_setVotingPeriod", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "newProposalThreshold", + "type": "uint256" + } + ], + "name": "_setProposalThreshold", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "_initiate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "newPendingAdmin", + "type": "address" + } + ], + "name": "_setPendingAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "_acceptAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.16-develop.2020.11.10+ovm+commit.00cdd204\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldImplementation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"NewImplementation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldPendingAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"NewPendingAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"ProposalQueued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldProposalThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalThresholdSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodSet\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOMAIN_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_PROPOSAL_THRESHOLD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_VOTING_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_VOTING_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_PROPOSAL_THRESHOLD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_VOTING_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_VOTING_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"_acceptAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"_initiate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"_setPendingAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"_setProposalThreshold\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"_setVotingDelay\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"_setVotingPeriod\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"cancel\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"comp\",\"outputs\":[{\"internalType\":\"contract CompInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"execute\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"getActions\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"getReceipt\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"hasVoted\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint96\",\"name\":\"votes\",\"type\":\"uint96\"}],\"internalType\":\"struct GovernorBravoDelegateStorageV1.Receipt\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"initialProposalId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"timelock_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"comp_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"votingPeriod_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votingDelay_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalThreshold_\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"latestProposalIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalMaxOperations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"abstainVotes\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"queue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"quorumVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum GovernorBravoDelegateStorageV1.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"timelock\",\"outputs\":[{\"internalType\":\"contract TimelockInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"_acceptAdmin()\":{\"details\":\"Admin function for pending admin to accept role and update admin\"},\"_initiate()\":{\"details\":\"Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count\"},\"_setPendingAdmin(address)\":{\"details\":\"Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\",\"params\":{\"newPendingAdmin\":\"New pending admin.\"}},\"_setProposalThreshold(uint256)\":{\"details\":\"newProposalThreshold must be greater than the hardcoded min\",\"params\":{\"newProposalThreshold\":\"new proposal threshold\"}},\"_setVotingDelay(uint256)\":{\"params\":{\"newVotingDelay\":\"new voting delay, in blocks\"}},\"_setVotingPeriod(uint256)\":{\"params\":{\"newVotingPeriod\":\"new voting period, in blocks\"}},\"cancel(uint256)\":{\"params\":{\"proposalId\":\"The id of the proposal to cancel\"}},\"castVote(uint256,uint8)\":{\"params\":{\"proposalId\":\"The id of the proposal to vote on\",\"support\":\"The support value for the vote. 0=against, 1=for, 2=abstain\"}},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"External function that accepts EIP-712 signatures for voting on proposals.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"params\":{\"proposalId\":\"The id of the proposal to vote on\",\"reason\":\"The reason given for the vote by the voter\",\"support\":\"The support value for the vote. 0=against, 1=for, 2=abstain\"}},\"execute(uint256)\":{\"params\":{\"proposalId\":\"The id of the proposal to execute\"}},\"getActions(uint256)\":{\"params\":{\"proposalId\":\"the id of the proposal\"},\"return\":\"Targets, values, signatures, and calldatas of the proposal actions\"},\"getReceipt(uint256,address)\":{\"params\":{\"proposalId\":\"the id of proposal\",\"voter\":\"The address of the voter\"},\"return\":\"The voting receipt\"},\"initialize(address,address,uint256,uint256,uint256)\":{\"params\":{\"comp_\":\"The address of the COMP token\",\"proposalThreshold_\":\"The initial proposal threshold\",\"timelock_\":\"The address of the Timelock\",\"votingDelay_\":\"The initial voting delay\",\"votingPeriod_\":\"The initial voting period\"}},\"propose(address[],uint256[],string[],bytes[],string)\":{\"params\":{\"calldatas\":\"Calldatas for proposal calls\",\"description\":\"String description of the proposal\",\"signatures\":\"Function signatures for proposal calls\",\"targets\":\"Target addresses for proposal calls\",\"values\":\"Eth values for proposal calls\"},\"return\":\"Proposal id of new proposal\"},\"queue(uint256)\":{\"params\":{\"proposalId\":\"The id of the proposal to queue\"}},\"state(uint256)\":{\"params\":{\"proposalId\":\"The id of the proposal\"},\"return\":\"Proposal state\"}}},\"userdoc\":{\"methods\":{\"_acceptAdmin()\":{\"notice\":\"Accepts transfer of admin rights. msg.sender must be pendingAdmin\"},\"_initiate()\":{\"notice\":\"Initiate the GovernorBravo contract\"},\"_setPendingAdmin(address)\":{\"notice\":\"Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\"},\"_setProposalThreshold(uint256)\":{\"notice\":\"Admin function for setting the proposal threshold\"},\"_setVotingDelay(uint256)\":{\"notice\":\"Admin function for setting the voting delay\"},\"_setVotingPeriod(uint256)\":{\"notice\":\"Admin function for setting the voting period\"},\"cancel(uint256)\":{\"notice\":\"Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold\"},\"castVote(uint256,uint8)\":{\"notice\":\"Cast a vote for a proposal\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"notice\":\"Cast a vote for a proposal by signature\"},\"castVoteWithReason(uint256,uint8,string)\":{\"notice\":\"Cast a vote for a proposal with a reason\"},\"execute(uint256)\":{\"notice\":\"Executes a queued proposal if eta has passed\"},\"getActions(uint256)\":{\"notice\":\"Gets actions of a proposal\"},\"getReceipt(uint256,address)\":{\"notice\":\"Gets the receipt for a voter on a given proposal\"},\"initialize(address,address,uint256,uint256,uint256)\":{\"notice\":\"Used to initialize the contract during delegator contructor\"},\"propose(address[],uint256[],string[],bytes[],string)\":{\"notice\":\"Function used to propose a new proposal. Sender must have delegates above the proposal threshold\"},\"queue(uint256)\":{\"notice\":\"Queues a proposal of state succeeded\"},\"state(uint256)\":{\"notice\":\"Gets the state of a proposal\"}}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/GovernorBravoDelegate.sol\":\"GovernorBravoDelegate\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"project:/contracts/GovernorBravoDelegate.sol\":{\"keccak256\":\"0x64956019147d5456145c10feab1a38913b9f0e747768362532ac36605f450c43\",\"urls\":[\"bzz-raw://85de708b9f5de85770706ec6b5b7351fa9fd97fe5a84fa203b8d0534f0e598cd\",\"dweb:/ipfs/QmfU5g2F8uwpt7jTfsLhqkpir32frNcjYwdnhxDZhFFCju\"]},\"project:/contracts/GovernorBravoInterfaces.sol\":{\"keccak256\":\"0x74cb8a82fef2906cbee7c96d7aa72e46b01df83859704a35a4a63d3aa9493718\",\"urls\":[\"bzz-raw://82b0c9f82c46927ea7128afc44921d60af23461da7f6d0c29484b5b92ad2b87a\",\"dweb:/ipfs/QmbNHAYEhhXzmdsmfMPLuGAGceq9oHD9AaDmyrnVaXPrhh\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001c576000806200001962000023565b50505b5062000090565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156200005d57808601518282016040015260200162000040565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b61582580620000a06000396000f3fe6080604052600436106101cb5760003560e01c8063013cf08b146101d957806302a251a31461022157806306fdde031461024c5780630ea2d98c14610277578063109d0af8146102a257806317977c61146102cd57806317ba1b8b146102f65780631dfb1b5a1461031f57806320606b7014610348578063215809ca1461036657806324bc1a641461038457806325fd935a146103a257806326782247146103c0578063328dd982146103eb5780633932abb1146104245780633bccf4fd146104425780633e4f49e61461046b57806340e58ee5146104a157806356781388146104ca5780635c60da1b146104f3578063791f5d23146105115780637b3c71d31461052f5780637bdbe4d014610558578063878f148214610576578063a64e024a14610594578063b1126263146105b2578063b58131b0146105d0578063b71d1a0c146105ee578063d13f90b414610617578063d33219b414610640578063da35c6641461065e578063da95691a1461067c578063ddf0b009146106a5578063deaaa7cc146106ce578063e23a9a52146106ec578063e48083fe14610366578063e9c714f214610722578063f851a44014610740578063fc4eee421461075e578063fe0d94c11461077c575b6000806101d6613056565b50505b3480156101ee576000806101eb613056565b50505b506102026101fd366004613e37565b61078f565b6040516102189a99989796959493929190615451565b60405180910390f35b34801561023657600080610233613056565b50505b5061023f61084d565b604051610218919061508e565b3480156102615760008061025e613056565b50505b5061026a61085a565b604051610218919061514a565b34801561028c57600080610289613056565b50505b506102a061029b366004613e37565b61088b565b005b3480156102b7576000806102b4613056565b50505b506102c0610995565b604051610218919061512e565b3480156102e2576000806102df613056565b50505b5061023f6102f1366004613be6565b6109b4565b34801561030b57600080610308613056565b50505b506102a061031a366004613e37565b6109cc565b34801561033457600080610331613056565b50505b506102a0610343366004613e37565b610acc565b34801561035d5760008061035a613056565b50505b5061023f610bbb565b34801561037b57600080610378613056565b50505b5061023f610bd2565b34801561039957600080610396613056565b50505b5061023f610bd7565b3480156103b7576000806103b4613056565b50505b5061023f610be5565b3480156103d5576000806103d2613056565b50505b506103de610bf3565b6040516102189190614f54565b348015610400576000806103fd613056565b50505b5061041461040f366004613e37565b610bff565b6040516102189493929190615041565b34801561043957600080610436613056565b50505b5061023f610f25565b34801561045757600080610454613056565b50505b506102a0610466366004613f53565b610f2f565b3480156104805760008061047d613056565b50505b5061049461048f366004613e37565b61115d565b604051610218919061513c565b3480156104b6576000806104b3613056565b50505b506102a06104c5366004613e37565b61139d565b3480156104df576000806104dc613056565b50505b506102a06104ee366004613ea1565b61172a565b34801561050857600080610505613056565b50505b506103de61177b565b34801561052657600080610523613056565b50505b5061023f611787565b34801561054457600080610541613056565b50505b506102a0610553366004613eda565b611795565b34801561056d5760008061056a613056565b50505b5061023f6117ec565b34801561058b57600080610588613056565b50505b506102a06117f1565b3480156105a9576000806105a6613056565b50505b5061023f61194e565b3480156105c7576000806105c4613056565b50505b5061023f611955565b3480156105e5576000806105e2613056565b50505b5061023f61195b565b34801561060357600080610600613056565b50505b506102a0610612366004613be6565b611965565b34801561062c57600080610629613056565b50505b506102a061063b366004613c15565b611a3f565b34801561065557600080610652613056565b50505b506102c0611cdf565b34801561067357600080610670613056565b50505b5061023f611ceb565b3480156106915760008061068e613056565b50505b5061023f6106a0366004613c93565b611cf5565b3480156106ba576000806106b7613056565b50505b506102a06106c9366004613e37565b6122ce565b3480156106e3576000806106e0613056565b50505b5061023f612607565b348015610701576000806106fe613056565b50505b50610715610710366004613e5e565b612613565b604051610218919061539b565b34801561073757600080610734613056565b50505b506102a06126b4565b34801561075557600080610752613056565b50505b506103de61288f565b34801561077357600080610770613056565b50505b5061023f61289a565b6102a061078a366004613e37565b6128a4565b600a6020528060005260406000209050806107a86130c1565b906000600182016107b76130c1565b906101000a90046001600160a01b031690806002016107d46130c1565b90806007016107e16130c1565b90806008016107ee6130c1565b90806009016107fb6130c1565b9080600a016108086130c1565b9080600b016108156130c1565b906000600c82016108246130c1565b906101000a900460ff169080600c0160019061083e6130c1565b906101000a900460ff1690508a565b60046108576130c1565b81565b604051604080820190526017815276436f6d706f756e6420476f7665726e6f7220427261766f60481b602082015281565b6000806108966130c1565b906101000a90046001600160a01b03166001600160a01b03165a6108b8613121565b6001600160a01b0316146108f05760405162461bcd60e51b81526004016108de9061519b565b604051809103906108ed613056565b50505b60018110158015610904575062013b008111155b6109325760405162461bcd60e51b8152600401610920906151db565b6040518091039061092f613056565b50505b6000600461093e6130c1565b90508180600461094c613167565b5050507f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e882881600461097b6130c1565b6040516109899291906154d7565b60405180910390a15050565b600060096109a16130c1565b906101000a90046001600160a01b031681565b600b60205280600052604060002090506108576130c1565b6000806109d76130c1565b906101000a90046001600160a01b03166001600160a01b03165a6109f9613121565b6001600160a01b031614610a315760405162461bcd60e51b8152600401610a1f9061535b565b60405180910390610a2e613056565b50505b690a968163f0a57b4000008110158015610a55575069152d02c7e14af68000008111155b610a835760405162461bcd60e51b8152600401610a719061527b565b60405180910390610a80613056565b50505b60006005610a8f6130c1565b905081806005610a9d613167565b5050507fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc0546181600561097b6130c1565b600080610ad76130c1565b906101000a90046001600160a01b03166001600160a01b03165a610af9613121565b6001600160a01b031614610b315760405162461bcd60e51b8152600401610b1f906151bb565b60405180910390610b2e613056565b50505b60018110158015610b445750619d808111155b610b725760405162461bcd60e51b8152600401610b609061520b565b60405180910390610b6f613056565b50505b60006003610b7e6130c1565b905081806003610b8c613167565b5050507fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a9381600361097b6130c1565b604051610bc790614f49565b604051809103902081565b600181565b6954b40b1f852bda00000081565b69152d02c7e14af680000081565b600060016109a16130c1565b6000818152600a602052606090819081908190604081209050806003018160040182600501836006018380610c326130c1565b806020026020016040519081016040528181529190602083018280610c556130c1565b8015610ca257602002820191906000526020600020905b600082610c776130c1565b906101000a90046001600160a01b03166001600160a01b031681526020019060010190808311610c6c575b505050505093508280610cb36130c1565b806020026020016040519081016040528181529190602083018280610cd66130c1565b8015610d0857602002820191906000526020600020905b81610cf66130c1565b81526020019060010190808311610ced575b505050505092508180610d196130c1565b8060200260200160405190810160405281815291906000602084015b82821015610e0c5783829060005260206000200180610d526130c1565b600181600116156101000203166002900480601f016020809104026020016040519081016040528181529190602083018280610d8c6130c1565b60018160011615610100020316600290048015610df85780601f10610dc6576101008083610db86130c1565b040283529160200191610df8565b820191906000526020600020905b81610ddd6130c1565b81529060010190602001808311610dd457829003601f168201915b505050505081526020019060010190610d35565b5050505091508080610e1c6130c1565b8060200260200160405190810160405281815291906000602084015b82821015610f0f5783829060005260206000200180610e556130c1565b600181600116156101000203166002900480601f016020809104026020016040519081016040528181529190602083018280610e8f6130c1565b60018160011615610100020316600290048015610efb5780601f10610ec9576101008083610ebb6130c1565b040283529160200191610efb565b820191906000526020600020905b81610ee06130c1565b81529060010190602001808311610ed757829003601f168201915b505050505081526020019060010190610e38565b5050505090509450945094509450509193509193565b60036108576130c1565b6000604051610f3d90614f49565b6040518091039020604051604080820190526017815276436f6d706f756e6420476f7665726e6f7220427261766f60481b602082015280519060200120610f82612b13565b5a63996d79a5598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051925060005b6040811015610fd857600082820152602001610fc1565b505050604051602001610fee949392919061509c565b604051602081830303815290604052805190602001209050600060405161101490614f0d565b60405180910390208787604051602001611030939291906150d1565b6040516020818303038152906040528051906020012090506000828260405160200161105d929190614f18565b60405160208183030381529060405280519060200120905060006001828888886040516000815260200160405260405161109a94939291906150f9565b6020604051602081039080840390855a6110b26131b5565b50505050501580156110d1573d6000803e3d60006110ce613056565b50505b5050506020604051035190506001600160a01b0381166111155760405162461bcd60e51b81526004016111039061523b565b60405180910390611112613056565b50505b806001600160a01b03166000805160206158058339815191528a8a61113b858e8e612b26565b60405161114a9392919061552b565b60405180910390a2505050505050505050565b600081600761116a6130c1565b101580156111805750600661117d6130c1565b82115b6111ae5760405162461bcd60e51b815260040161119c9061536b565b604051809103906111ab613056565b50505b6000828152600a6020526040812090506000600c82016111cc6130c1565b906101000a900460ff16156111e5576002915050611398565b806007016111f16130c1565b5a6111fa613265565b11611209576000915050611398565b806008016112156130c1565b5a61121e613265565b1161122d576001915050611398565b80600a016112396130c1565b816009016112456130c1565b11158061126657506954b40b1f852bda000000816009016112646130c1565b105b15611275576003915050611398565b806002016112816130c1565b61128f576004915050611398565b6001600c820161129d6130c1565b906101000a900460ff16156112b6576007915050611398565b61137a816002016112c56130c1565b600060086112d16130c1565b906101000a90046001600160a01b03166001600160a01b031663c1a287e26040518163ffffffff1660e01b815260040160206040518083038186806113146132ab565b15801561132957600080611326613056565b50505b505a6113336131b5565b5050505050158015611352573d6000803e3d600061134f613056565b50505b50505050604051601f3d908101601f191682016040526113759190810190613dca565b612e01565b5a6113836132f7565b10611392576006915050611398565b60059150505b919050565b60076113a88261115d565b60078111156113b357fe5b14156113e35760405162461bcd60e51b81526004016113d19061534b565b604051809103906113e0613056565b50505b6000818152600a6020526040812090506000600182016114016130c1565b906101000a90046001600160a01b03166001600160a01b03165a611423613121565b6001600160a01b0316148061152d5750600561143d6130c1565b600060096114496130c1565b6001600160a01b036101009290920a90041663782d6fe160006001850161146e6130c1565b906101000a90046001600160a01b03166114915a61148a613265565b6001612e3e565b6040518363ffffffff1660e01b81526004016114ae929190614f98565b60206040518083038186806114c16132ab565b1580156114d6576000806114d3613056565b50505b505a6114e06131b5565b50505050501580156114ff573d6000803e3d60006114fc613056565b50505b50505050604051601f3d908101601f191682016040526115229190810190613fa2565b6001600160601b0316105b61155b5760405162461bcd60e51b8152600401611549906152eb565b60405180910390611558613056565b50505b6001600c8201818161156b6130c1565b8160ff02191690831515021790611580613167565b5060009150505b81600301806115946130c1565b90508110156116fa57600060086115a96130c1565b906101000a90046001600160a01b03166001600160a01b031663591fcdfe8360030183816115d56130c1565b81106115dd57fe5b906000526020600020016000906115f26130c1565b906101000a90046001600160a01b03168460040184816116106130c1565b811061161857fe5b9060005260206000200161162a6130c1565b8560050185816116386130c1565b811061164057fe5b906000526020600020018660060186816116586130c1565b811061166057fe5b90600052602060002001876002016116766130c1565b6040518663ffffffff1660e01b8152600401611696959493929190615000565b600060405180830381600087806116ab6132ab565b1580156116c0576000806116bd613056565b50505b505a6116ca61333d565b5050505050501580156116ea573d6000803e3d60006116e7613056565b50505b5050600190920191506115879050565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c82604051610989919061508e565b5a611733613121565b6001600160a01b031660008051602061580583398151915283836117605a611759613121565b8787612b26565b60405161176f9392919061552b565b60405180910390a25050565b600060026109a16130c1565b690a968163f0a57b40000081565b5a61179e613121565b6001600160a01b031660008051602061580583398151915285856117cb5a6117c4613121565b8989612b26565b86866040516117de9594939291906154e5565b60405180910390a250505050565b600a81565b6000806117fc6130c1565b906101000a90046001600160a01b03166001600160a01b03165a61181e613121565b6001600160a01b0316146118565760405162461bcd60e51b81526004016118449061532b565b60405180910390611853613056565b50505b60066118606130c1565b1561188f5760405162461bcd60e51b815260040161187d906152ab565b6040518091039061188c613056565b50505b600180600761189c613167565b50505060076118a96130c1565b8060066118b4613167565b50505060086000906118c46130c1565b906101000a90046001600160a01b03166001600160a01b0316630e18b6816040518163ffffffff1660e01b8152600401600060405180830381600087806119096132ab565b15801561191e5760008061191b613056565b50505b505a61192861333d565b505050505050158015611948573d6000803e3d6000611945613056565b50505b50505050565b62013b0081565b619d8081565b60056108576130c1565b6000806119706130c1565b906101000a90046001600160a01b03166001600160a01b03165a611992613121565b6001600160a01b0316146119ca5760405162461bcd60e51b81526004016119b89061517b565b604051809103906119c7613056565b50505b60008060016119d76130c1565b906101000a90046001600160a01b0316905081600160006101000a816119fb6130c1565b816001600160a01b0302191690836001600160a01b0316021790611a1d613167565b5050506000805160206157a58339815191528183604051610989929190614f7d565b6000806008611a4c6130c1565b906101000a90046001600160a01b03166001600160a01b031614611a945760405162461bcd60e51b8152600401611a829061516b565b60405180910390611a91613056565b50505b600080611a9f6130c1565b906101000a90046001600160a01b03166001600160a01b03165a611ac1613121565b6001600160a01b031614611af95760405162461bcd60e51b8152600401611ae79061526b565b60405180910390611af6613056565b50505b6001600160a01b038516611b315760405162461bcd60e51b8152600401611b1f906151ab565b60405180910390611b2e613056565b50505b6001600160a01b038416611b695760405162461bcd60e51b8152600401611b57906152db565b60405180910390611b66613056565b50505b60018310158015611b7d575062013b008311155b611bab5760405162461bcd60e51b8152600401611b999061537b565b60405180910390611ba8613056565b50505b60018210158015611bbe5750619d808211155b611bec5760405162461bcd60e51b8152600401611bda9061524b565b60405180910390611be9613056565b50505b690a968163f0a57b4000008110158015611c10575069152d02c7e14af68000008111155b611c3e5760405162461bcd60e51b8152600401611c2c9061521b565b60405180910390611c3b613056565b50505b846008600181611c4c6130c1565b816001600160a01b0302191690836001600160a01b0316021790611c6e613167565b50505083600960006101000a81611c836130c1565b816001600160a01b0302191690836001600160a01b0316021790611ca5613167565b5050508260048190611cb5613167565b5050508160038190611cc5613167565b5050508060058190611cd5613167565b5050505050505050565b600060086109a16130c1565b60076108576130c1565b60006006611d016130c1565b611d2f5760405162461bcd60e51b8152600401611d1d906151cb565b60405180910390611d2c613056565b50505b6005611d396130c1565b60006009611d456130c1565b906101000a90046001600160a01b03166001600160a01b031663782d6fe15a611d6c613121565b611d785a61148a613265565b6040518363ffffffff1660e01b8152600401611d95929190614f62565b6020604051808303818680611da86132ab565b158015611dbd57600080611dba613056565b50505b505a611dc76131b5565b5050505050158015611de6573d6000803e3d6000611de3613056565b50505b50505050604051601f3d908101601f19168201604052611e099190810190613fa2565b6001600160601b031611611e415760405162461bcd60e51b8152600401611e2f9061533b565b60405180910390611e3e613056565b50505b84518651148015611e53575083518651145b8015611e60575082518651145b611e8e5760405162461bcd60e51b8152600401611e7c9061525b565b60405180910390611e8b613056565b50505b8551611ebe5760405162461bcd60e51b8152600401611eac906152bb565b60405180910390611ebb613056565b50505b600a86511115611ef25760405162461bcd60e51b8152600401611ee0906152fb565b60405180910390611eef613056565b50505b6000600b60005a611f01613121565b6001600160a01b03166001600160a01b03168152602001908152602001600020611f296130c1565b90508015611fbc576000611f3c8261115d565b90506001816007811115611f4c57fe5b1415611f7c5760405162461bcd60e51b8152600401611f6a9061531b565b60405180910390611f79613056565b50505b6000816007811115611f8a57fe5b1415611fba5760405162461bcd60e51b8152600401611fa89061530b565b60405180910390611fb7613056565b50505b505b6000611fd45a611fca613265565b60036113756130c1565b90506000611fe68260046113756130c1565b90506007600081611ff56130c1565b91600183019150612004613167565b50505061200f6133ed565b604051806101c0016040528060076120256130c1565b81526020015a612033613121565b6001600160a01b03168152602001600081526020018b81526020018a815260200189815260200188815260200184815260200183815260200160008152602001600081526020016000815260200160001515815260200160001515815250905080600a6000836000015181526020019081526020016000208151816120b6613167565b50506020820151600180830190816120cc6130c1565b816001600160a01b0302191690836001600160a01b03160217906120ee613167565b505050604082015181600201612102613167565b505060608201518160030190805161211e929160200190613469565b506080820151816004019080516121399291602001906134f3565b5060a082015181600501908051612154929160200190613553565b5060c08201518160060190805161216f9291602001906135bb565b5060e082015181600701612181613167565b505061010082015181600801612195613167565b5050610120820151816009016121a9613167565b505061014082015181600a016121bd613167565b505061016082015181600b016121d1613167565b5050610180820151600c82016001816121e86130c1565b8160ff021916908315150217906121fd613167565b5050506101a0820151600c8201610100816122166130c1565b8160ff0219169083151502179061222b613167565b5084935050505051600b600083602001516001600160a01b03166001600160a01b031681526020019081526020016000208190612266613167565b5050507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e081600001515a612298613121565b8c8c8c8c89898e6040516122b4999897969594939291906153a9565b60405180910390a180519450505050505b95945050505050565b60046122d98261115d565b60078111156122e457fe5b146123135760405162461bcd60e51b81526004016123019061528b565b60405180910390612310613056565b50505b6000818152600a60205260408120905060006123805a6123316132f7565b6000600861233d6130c1565b906101000a90046001600160a01b03166001600160a01b0316636a42b8f86040518163ffffffff1660e01b815260040160206040518083038186806113146132ab565b905060005b82600301806123926130c1565b90508110156125b7576125af8360030182816123ac6130c1565b81106123b457fe5b906000526020600020016000906123c96130c1565b906101000a90046001600160a01b03168460040183816123e76130c1565b81106123ef57fe5b906000526020600020016124016130c1565b85600501848161240f6130c1565b811061241757fe5b906000526020600020018061242a6130c1565b600181600116156101000203166002900480601f0160208091040260200160405190810160405281815291906020830182806124646130c1565b600181600116156101000203166002900480156124d05780601f1061249e5761010080836124906130c1565b0402835291602001916124d0565b820191906000526020600020905b816124b56130c1565b815290600101906020018083116124ac57829003601f168201915b50505050508660060185816124e36130c1565b81106124eb57fe5b90600052602060002001806124fe6130c1565b600181600116156101000203166002900480601f0160208091040260200160405190810160405281815291906020830182806125386130c1565b600181600116156101000203166002900480156125a45780601f106125725761010080836125646130c1565b0402835291602001916125a4565b820191906000526020600020905b816125896130c1565b8152906001019060200180831161258057829003601f168201915b505050505086612e78565b600101612385565b508080600284016125c6613167565b5050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289283826040516125fa9291906154d7565b60405180910390a1505050565b604051610bc790614f0d565b61261b613623565b6000838152600a602052604090206001600160a01b0383166000908152600d919091016020526040902060405160608101604052908160008261265c6130c1565b60ff6101009290920a9004161515815260200160018261267a6130c1565b60ff6101009290920a90041681526020016002826126966130c1565b6001600160601b036101009290920a90041690525090505b92915050565b600060016126c06130c1565b906101000a90046001600160a01b03166001600160a01b03165a6126e2613121565b6001600160a01b031614801561270a575060005a6126fe613121565b6001600160a01b031614155b6127385760405162461bcd60e51b8152600401612726906152cb565b60405180910390612735613056565b50505b600080806127446130c1565b906101000a90046001600160a01b03169050600060016000906127656130c1565b906101000a90046001600160a01b0316905060016000906127846130c1565b906101000a90046001600160a01b03166000806101000a816127a46130c1565b816001600160a01b0302191690836001600160a01b03160217906127c6613167565b5050506000600160006101000a816127dc6130c1565b816001600160a01b0302191690836001600160a01b03160217906127fe613167565b5050507ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc826000809061282f6130c1565b906101000a90046001600160a01b031660405161284d929190614f7d565b60405180910390a16000805160206157a583398151915281600060016128716130c1565b906101000a90046001600160a01b0316604051610989929190614f7d565b6000806109a16130c1565b60066108576130c1565b60056128af8261115d565b60078111156128ba57fe5b146128e95760405162461bcd60e51b81526004016128d79061522b565b604051809103906128e6613056565b50505b6000818152600a6020526040812090506001600c82016101008161290b6130c1565b8160ff02191690831515021790612920613167565b5060009150505b81600301806129346130c1565b9050811015612ae357600060086129496130c1565b906101000a90046001600160a01b03166001600160a01b0316630825f38f8360040183816129756130c1565b811061297d57fe5b9060005260206000200161298f6130c1565b84600301848161299d6130c1565b81106129a557fe5b906000526020600020016000906129ba6130c1565b906101000a90046001600160a01b03168560040185816129d86130c1565b81106129e057fe5b906000526020600020016129f26130c1565b866005018681612a006130c1565b8110612a0857fe5b90600052602060002001876006018781612a206130c1565b8110612a2857fe5b9060005260206000200188600201612a3e6130c1565b6040518763ffffffff1660e01b8152600401612a5e959493929190615000565b600060405180830381858880612a726132ab565b158015612a8757600080612a84613056565b50505b505a612a9161333d565b505050505050158015612ab1573d6000803e3d6000612aae613056565b50505b50505050506040513d6000823e601f3d908101601f19168201604052612ada9190810190613df1565b50600101612927565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f82604051610989919061508e565b6000805a612b1f613642565b9150505b90565b60006001612b338461115d565b6007811115612b3e57fe5b14612b6d5760405162461bcd60e51b8152600401612b5b906151eb565b60405180910390612b6a613056565b50505b60028260ff161115612ba35760405162461bcd60e51b8152600401612b919061515b565b60405180910390612ba0613056565b50505b6000838152600a602052604081206001600160a01b0386166000908152600d8201602052909150604081209050600081612bdb6130c1565b60ff6101009290920a90041615612c165760405162461bcd60e51b8152600401612c04906151fb565b60405180910390612c13613056565b50505b6000806009612c236130c1565b906101000a90046001600160a01b03166001600160a01b031663782d6fe18885600701612c4e6130c1565b6040518363ffffffff1660e01b8152600401612c6b929190614f98565b6020604051808303818680612c7e6132ab565b158015612c9357600080612c90613056565b50505b505a612c9d6131b5565b5050505050158015612cbc573d6000803e3d6000612cb9613056565b50505b50505050604051601f3d908101601f19168201604052612cdf9190810190613fa2565b905060ff8516612d1c57612d0783600a01612cf86130c1565b826001600160601b0316612e01565b80600a8501612d14613167565b505050612d70565b8460ff1660011415612d4457612d3783600901612cf86130c1565b8060098501612d14613167565b8460ff1660021415612d7057612d5f83600b01612cf86130c1565b80600b8501612d6c613167565b5050505b6001828181612d7d6130c1565b8160ff02191690831515021790612d92613167565b5086915083905061010081612da56130c1565b8160ff021916908360ff16021790612dbb613167565b508291508390506201000081612dcf6130c1565b816001600160601b0302191690836001600160601b0316021790612df1613167565b50919450505050505b9392505050565b600082820183811015612dfa5760405162461bcd60e51b8152600401612e269061529b565b60405180910390612e35613056565b50509392505050565b600082821115612e725760405162461bcd60e51b8152600401612e609061538b565b60405180910390612e6f613056565b50505b50900390565b60006008612e846130c1565b906101000a90046001600160a01b03166001600160a01b031663f2b065378686868686604051602001612ebb959493929190614fa6565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401612eed919061508e565b6020604051808303818680612f006132ab565b158015612f1557600080612f12613056565b50505b505a612f1f6131b5565b5050505050158015612f3e573d6000803e3d6000612f3b613056565b50505b50505050604051601f3d908101601f19168201604052612f619190810190613da3565b15612f905760405162461bcd60e51b8152600401612f7e9061518b565b60405180910390612f8d613056565b50505b60006008612f9c6130c1565b906101000a90046001600160a01b03166001600160a01b0316633a66f90186868686866040518663ffffffff1660e01b8152600401612fdf959493929190614fa6565b60206040518083038160008780612ff46132ab565b15801561300957600080613006613056565b50505b505a61301361333d565b505050505050158015613033573d6000803e3d6000613030613056565b50505b50505050604051601f3d908101601f191682016040526119459190810190613dca565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561308e578086015182820160400152602001613073565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b604081101561311c57600082820152602001613105565b505050565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b80516000825293506020613105565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b600081526020613105565b638540661f598160e01b8152836004820152846024820152606060448201528660648201526084810160005b888110156131f95780880151828201526020016131e1565b506060828960a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8b8b82606087013350600060045af15059845b8181101561325a5760008152602001613246565b50919b505050505050565b635a98c361598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b80516000825293506020613105565b638435035b598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b80516000825293506020613105565b63bdbf8c36598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b80516000825293506020613105565b6385979f76598160e01b8152836004820152846024820152606060448201528760648201526084810160005b89811015613381578089015182820152602001613369565b506060828a60a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8c8c82606087013350600060045af15059845b818110156133e257600081526020016133ce565b50919c505050505050565b604051806101c001604052806000815260200160006001600160a01b03168152602001600081526020016060815260200160608152602001606081526020016060815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b82806134736130c1565b828261347d613167565b50509060005260206000209081019282156134e3579160200282015b828111156134e3578251826001816134af6130c1565b816001600160a01b0302191690836001600160a01b03160217906134d1613167565b50505091602001919060010190613499565b506134ef929150613688565b5090565b82806134fd6130c1565b8282613507613167565b5050906000526020600020908101928215613547579160200282015b8281111561354757825182613536613167565b505091602001919060010190613523565b506134ef9291506136c4565b828061355d6130c1565b8282613567613167565b50509060005260206000209081019282156135af579160200282015b828111156135af5782518290805161359f9291602001906136e9565b5091602001919060010190613583565b506134ef929150613779565b82806135c56130c1565b82826135cf613167565b5050906000526020600020908101928215613617579160200282015b828111156136175782518290805161360792916020019061379c565b50916020019190600101906135eb565b506134ef929150613825565b6040516060810160409081526000808352602083018190529082015290565b6390580256598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b80516000825293506020613105565b612b2391905b808211156134ef576000816001816136a46130c1565b906001600160a01b03021916906136b9613167565b50505060010161368e565b612b2391905b808211156134ef57600080826136de613167565b5050506001016136ca565b82806136f36130c1565b600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061373a57805160ff19168380011785613733613167565b5050613547565b82800160010185613749613167565b50508215613547579182015b8281111561354757825182613768613167565b505091602001919060010190613755565b612b2391905b808211156134ef5760006137938282613848565b5060010161377f565b82806137a66130c1565b600181600116156101000203166002900490600052602060002090601f016020900481019282601f106137e657805160ff19168380011785613733613167565b828001600101856137f5613167565b50508215613547579182015b8281111561354757825182613814613167565b505091602001919060010190613801565b612b2391905b808211156134ef57600061383f8282613848565b5060010161382b565b50806138526130c1565b600181600116156101000203166002900460008261386e613167565b505080601f1061387e575061389a565b601f016020900490600052602060002061389a918101906136c4565b50565b80356126ae816156c6565b600082601f8301126138c2576000806138bf613056565b50505b81356138d56138d082615597565b615564565b9150818183526020840193506020810190508385602084028201111561390357600080613900613056565b50505b60005b8381101561392f5781613919888261389d565b8452506020928301929190910190600101613906565b5050505092915050565b600082601f83011261395357600080613950613056565b50505b81356139616138d082615597565b81815260209384019390925082018360005b8381101561392f57813586016139898882613ab0565b8452506020928301929190910190600101613973565b600082601f8301126139b9576000806139b6613056565b50505b81356139c76138d082615597565b81815260209384019390925082018360005b8381101561392f57813586016139ef8882613ab0565b84525060209283019291909101906001016139d9565b600082601f830112613a1f57600080613a1c613056565b50505b8135613a2d6138d082615597565b91508181835260208401935060208101905083856020840282011115613a5b57600080613a58613056565b50505b60005b8381101561392f5781613a718882613a96565b8452506020928301929190910190600101613a5e565b6000815190506126ae816156e0565b80356126ae816156e9565b6000815190506126ae816156e9565b600082601f830112613aca57600080613ac7613056565b50505b8135613ad86138d0826155c0565b91508082526020830160208301858383011115613afd57600080613afa613056565b50505b613b0883828461567a565b50505092915050565b600082601f830112613b2b57600080613b28613056565b50505b8151613b396138d0826155c0565b91508082526020830160208301858383011115613b5e57600080613b5b613056565b50505b613b08838284615686565b60008083601f840112613b8457600080613b81613056565b50505b5081356001600160401b03811115613ba457600080613ba1613056565b50505b602083019150836001820283011115613bc557600080613bc2613056565b50505b9250929050565b80356126ae816156f2565b6000815190506126ae816156fb565b600060208284031215613c0157600080613bfe613056565b50505b6000613c0d848461389d565b949350505050565b600080600080600060a08688031215613c3657600080613c33613056565b50505b6000613c42888861389d565b9550506020613c538882890161389d565b9450506040613c6488828901613a96565b9350506060613c7588828901613a96565b9250506080613c8688828901613a96565b9150509295509295909350565b600080600080600060a08688031215613cb457600080613cb1613056565b50505b85356001600160401b03811115613cd357600080613cd0613056565b50505b613cdf888289016138a8565b95505060208601356001600160401b03811115613d0457600080613d01613056565b50505b613d1088828901613a05565b94505060408601356001600160401b03811115613d3557600080613d32613056565b50505b613d418882890161399f565b93505060608601356001600160401b03811115613d6657600080613d63613056565b50505b613d7288828901613939565b92505060808601356001600160401b03811115613d9757600080613d94613056565b50505b613c8688828901613ab0565b600060208284031215613dbe57600080613dbb613056565b50505b6000613c0d8484613a87565b600060208284031215613de557600080613de2613056565b50505b6000613c0d8484613aa1565b600060208284031215613e0c57600080613e09613056565b50505b81516001600160401b03811115613e2b57600080613e28613056565b50505b613c0d84828501613b11565b600060208284031215613e5257600080613e4f613056565b50505b6000613c0d8484613a96565b60008060408385031215613e7a57600080613e77613056565b50505b6000613e868585613a96565b9250506020613e978582860161389d565b9150509250929050565b60008060408385031215613ebd57600080613eba613056565b50505b6000613ec98585613a96565b9250506020613e9785828601613bcc565b60008060008060608587031215613ef957600080613ef6613056565b50505b6000613f058787613a96565b9450506020613f1687828801613bcc565b93505060408501356001600160401b03811115613f3b57600080613f38613056565b50505b613f4787828801613b69565b95989497509550505050565b600080600080600060a08688031215613f7457600080613f71613056565b50505b6000613f808888613a96565b9550506020613f9188828901613bcc565b9450506040613c6488828901613bcc565b600060208284031215613fbd57600080613fba613056565b50505b6000613c0d8484613bd7565b6000613fd58383614004565b505060200190565b6000612dfa83836141a6565b6000613fd5838361418c565b613ffe81615652565b82525050565b613ffe8161561a565b600061401882615607565b6140228185615611565b935061402d836155f0565b8060005b8381101561405b5781516140458882613fc9565b9750614050836155f0565b925050600101614031565b509495945050505050565b600061407182615607565b61407b8185615611565b93508360208202850161408d856155f0565b8060005b858110156140c757848403895281516140aa8582613fdd565b94506140b5836155f0565b60209a909a0199925050600101614091565b5091979650505050505050565b60006140df82615607565b6140e98185615611565b9350836020820285016140fb856155f0565b8060005b858110156140c757848403895281516141188582613fdd565b9450614123836155f0565b60209a909a01999250506001016140ff565b600061414082615607565b61414a8185615611565b9350614155836155f0565b8060005b8381101561405b57815161416d8882613fe9565b9750614178836155f0565b925050600101614159565b613ffe81615625565b613ffe81612b23565b613ffe6141a182612b23565b612b23565b60006141b182615607565b6141bb8185615611565b93506141cb818560208601615686565b6141d4816156b2565b9093019392505050565b6000816141e96130c1565b60018116801561420057600181146142265761426d565b607f60028304166142118187615611565b60ff198416815295505060208501925061426d565b600282046142348187615611565b955061423f856155f6565b60005b8281101561426657816142536130c1565b8882015260019190910190602001614242565b8701945050505b505092915050565b613ffe81615659565b613ffe81615664565b60006142938385615611565b93506142a083858461567a565b6141d4836156b2565b6000816142b46130c1565b60018116801561420057600181146142cb5761426d565b600282046142d98187615611565b95506142e4856155f6565b60005b8281101561426657816142f86130c1565b88820152600191909101906020016142e7565b6000614318603283615611565b60008051602061572583398151915281527120696e76616c696420766f7465207479706560701b602082015260400192915050565b600061435a602883611398565b7f42616c6c6f742875696e743235362070726f706f73616c49642c75696e743820815267737570706f72742960c01b602082015260280192915050565b60006143a4603383615611565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a2063616e206f8152726e6c7920696e697469616c697a65206f6e636560681b602082015260400192915050565b60006143f9602a83615611565b7f476f7665726e6f72427261766f3a5f73657450656e64696e6741646d696e3a2081526961646d696e206f6e6c7960b01b602082015260400192915050565b6000614445605583615611565b7f476f7665726e6f72427261766f3a3a71756575654f72526576657274496e746581527f726e616c3a206964656e746963616c2070726f706f73616c20616374696f6e20602082015274616c7265616479207175657565642061742065746160581b604082015260600192915050565b60006144c2602b83615611565b6000805160206157e583398151915281526a2061646d696e206f6e6c7960a81b602082015260400192915050565b60006144fd603383615611565b60008051602061574583398151915281527269642074696d656c6f636b206164647265737360681b602082015260400192915050565b6000614540602a83615611565b6000805160206157c583398151915281526961646d696e206f6e6c7960b01b602082015260400192915050565b600061457a603183615611565b7f476f7665726e6f72427261766f3a3a70726f706f73653a20476f7665726e6f7281527020427261766f206e6f742061637469766560781b602082015260400192915050565b60006145cd600283611398565b61190160f01b815260020192915050565b60006145eb603683615611565b6000805160206157e5833981519152815275081a5b9d985b1a59081d9bdd1a5b99c81c195c9a5bd960521b602082015260400192915050565b6000614631603183615611565b600080516020615725833981519152815270081d9bdd1a5b99c81a5cc818db1bdcd959607a1b602082015260400192915050565b6000614672603483615611565b600080516020615725833981519152815273081d9bdd195c88185b1c9958591e481d9bdd195960621b602082015260400192915050565b60006146b6603483615611565b6000805160206157c5833981519152815273696e76616c696420766f74696e672064656c617960601b602082015260400192915050565b60006146fa603583615611565b6000805160206157458339815191528152741a59081c1c9bdc1bdcd85b081d1a1c995cda1bdb19605a1b602082015260400192915050565b600061473f604583615611565b7f476f7665726e6f72427261766f3a3a657865637574653a2070726f706f73616c81527f2063616e206f6e6c7920626520657865637574656420696620697420697320716020820152641d595d595960da1b604082015260600192915050565b60006147ac602f83615611565b7f476f7665726e6f72427261766f3a3a63617374566f746542795369673a20696e81526e76616c6964207369676e617475726560881b602082015260400192915050565b60006147fd602f83615611565b60008051602061574583398151915281526e696420766f74696e672064656c617960881b602082015260400192915050565b600061483c604483615611565b7f476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73616c81527f2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d6020820152630c2e8c6d60e31b604082015260600192915050565b60006148a8602583615611565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a2061646d696e815264206f6e6c7960d81b602082015260400192915050565b60006148ef604083615611565b60008051602061570583398151915281527f686f6c643a20696e76616c69642070726f706f73616c207468726573686f6c64602082015260400192915050565b600061493c604483615611565b7f476f7665726e6f72427261766f3a3a71756575653a2070726f706f73616c206381527f616e206f6e6c79206265207175657565642069662069742069732073756363656020820152631959195960e21b604082015260600192915050565b60006149a8601183615611565b706164646974696f6e206f766572666c6f7760781b815260200192915050565b60006149d5604383611398565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b6000614a40603083615611565b7f476f7665726e6f72427261766f3a3a5f696e6974696174653a2063616e206f6e81526f6c7920696e697469617465206f6e636560801b602082015260400192915050565b6000614a92602c83615611565b7f476f7665726e6f72427261766f3a3a70726f706f73653a206d7573742070726f81526b7669646520616374696f6e7360a01b602082015260400192915050565b6000614ae0602e83615611565b7f476f7665726e6f72427261766f3a5f61636365707441646d696e3a2070656e6481526d696e672061646d696e206f6e6c7960901b602082015260400192915050565b6000614b30602f83615611565b60008051602061574583398151915281526e696420636f6d70206164647265737360881b602082015260400192915050565b6000614b6f602f83615611565b7f476f7665726e6f72427261766f3a3a63616e63656c3a2070726f706f7365722081526e18589bdd99481d1a1c995cda1bdb19608a1b602082015260400192915050565b6000614bc0602883615611565b7f476f7665726e6f72427261766f3a3a70726f706f73653a20746f6f206d616e7981526720616374696f6e7360c01b602082015260400192915050565b6000614c0a605983615611565b600080516020615765833981519152815260008051602061578583398151915260208201527808185b1c9958591e481c195b991a5b99c81c1c9bdc1bdcd85b603a1b604082015260600192915050565b6000614c67605883615611565b600080516020615765833981519152815260008051602061578583398151915260208201527708185b1c9958591e481858dd1a5d99481c1c9bdc1bdcd85b60421b604082015260600192915050565b60006126ae600083615611565b6000614cd0602483615611565b7f476f7665726e6f72427261766f3a3a5f696e6974696174653a2061646d696e208152636f6e6c7960e01b602082015260400192915050565b6000614d16603f83615611565b7f476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73657281527f20766f7465732062656c6f772070726f706f73616c207468726573686f6c6400602082015260400192915050565b6000614d75603683615611565b7f476f7665726e6f72427261766f3a3a63616e63656c3a2063616e6e6f742063618152751b98d95b08195e1958dd5d1959081c1c9bdc1bdcd85b60521b602082015260400192915050565b6000614dcd603083615611565b60008051602061570583398151915281526f686f6c643a2061646d696e206f6e6c7960801b602082015260400192915050565b6000614e0d602983615611565b7f476f7665726e6f72427261766f3a3a73746174653a20696e76616c69642070728152681bdc1bdcd85b081a5960ba1b602082015260400192915050565b6000614e58603083615611565b60008051602061574583398151915281526f1a59081d9bdd1a5b99c81c195c9a5bd960821b602082015260400192915050565b6000614e98601583615611565b747375627472616374696f6e20756e646572666c6f7760581b815260200192915050565b606082018151614ecc8482614183565b506020820151614edf6020850182614ef2565b5060408201516119486040850182614f04565b613ffe81615640565b613ffe8161566f565b613ffe81615646565b60006126ae8261434d565b6000614f23826145c0565b9150614f2f8285614195565b602082019150614f3f8284614195565b5060200192915050565b60006126ae826149c8565b602081016126ae8284614004565b60408101614f708285613ff5565b612dfa602083018461418c565b60408101614f8b8285614004565b612dfa6020830184614004565b60408101614f708285614004565b60a08101614fb48288614004565b614fc1602083018761418c565b8181036040830152614fd381866141a6565b90508181036060830152614fe781856141a6565b9050614ff6608083018461418c565b9695505050505050565b60a0810161500e8288614004565b61501b602083018761418c565b818103604083015261502d81866142a9565b90508181036060830152614fe781856141de565b60808082528101615052818761400d565b905081810360208301526150668186614135565b9050818103604083015261507a81856140d4565b90508181036060830152614ff68184614066565b602081016126ae828461418c565b608081016150aa828761418c565b6150b7602083018661418c565b6150c4604083018561418c565b6122c56060830184614004565b606081016150df828661418c565b6150ec602083018561418c565b613c0d6040830184614ef2565b60808101615107828761418c565b6151146020830186614ef2565b615121604083018561418c565b6122c5606083018461418c565b602081016126ae8284614275565b602081016126ae828461427e565b60208082528101612dfa81846141a6565b602080825281016126ae8161430b565b602080825281016126ae81614397565b602080825281016126ae816143ec565b602080825281016126ae81614438565b602080825281016126ae816144b5565b602080825281016126ae816144f0565b602080825281016126ae81614533565b602080825281016126ae8161456d565b602080825281016126ae816145de565b602080825281016126ae81614624565b602080825281016126ae81614665565b602080825281016126ae816146a9565b602080825281016126ae816146ed565b602080825281016126ae81614732565b602080825281016126ae8161479f565b602080825281016126ae816147f0565b602080825281016126ae8161482f565b602080825281016126ae8161489b565b602080825281016126ae816148e2565b602080825281016126ae8161492f565b602080825281016126ae8161499b565b602080825281016126ae81614a33565b602080825281016126ae81614a85565b602080825281016126ae81614ad3565b602080825281016126ae81614b23565b602080825281016126ae81614b62565b602080825281016126ae81614bb3565b602080825281016126ae81614bfd565b602080825281016126ae81614c5a565b602080825281016126ae81614cc3565b602080825281016126ae81614d09565b602080825281016126ae81614d68565b602080825281016126ae81614dc0565b602080825281016126ae81614e00565b602080825281016126ae81614e4b565b602080825281016126ae81614e8b565b606081016126ae8284614ebc565b61012081016153b8828c61418c565b6153c5602083018b613ff5565b81810360408301526153d7818a61400d565b905081810360608301526153eb8189614135565b905081810360808301526153ff81886140d4565b905081810360a08301526154138187614066565b905061542260c083018661418c565b61542f60e083018561418c565b81810361010083015261544281846141a6565b9b9a5050505050505050505050565b6101408101615460828d61418c565b61546d602083018c614004565b61547a604083018b61418c565b615487606083018a61418c565b615494608083018961418c565b6154a160a083018861418c565b6154ae60c083018761418c565b6154bb60e083018661418c565b6154c9610100830185614183565b615442610120830184614183565b60408101614f70828561418c565b608081016154f3828861418c565b6155006020830187614ef2565b61550d6040830186614efb565b8181036060830152615520818486614287565b979650505050505050565b60808101615539828661418c565b6155466020830185614ef2565b6155536040830184614efb565b81810360608301526122c581614cb6565b600060405190508181018181106001600160401b038211171561558f5760008061558c613056565b50505b604052919050565b60006001600160401b038211156155b6576000806155b3613056565b50505b5060209081020190565b60006001600160401b038211156155df576000806155dc613056565b50505b506020601f91909101601f19160190565b60200190565b600081815281906020902092915050565b6000815192915050565b90815260200190565b60006126ae82615634565b151590565b80611398816156bc565b6001600160a01b031690565b60ff1690565b6001600160601b031690565b60006126ae825b60006126ae8261561a565b60006126ae8261562a565b60006126ae82615646565b82818337506000910152565b60005b838110156156a1578082015183820152602001615689565b838111156119485750506000910152565b601f01601f191690565b6008811061389a57fe5b6156cf8161561a565b811461389a5760008061311c613056565b6156cf81615625565b6156cf81612b23565b6156cf81615640565b6156cf8161564656fe476f7665726e6f72427261766f3a3a5f73657450726f706f73616c5468726573476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c6976652070726f706f73616c207065722070726f706f7365722c20666f756e6420616eca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9476f7665726e6f72427261766f3a3a5f736574566f74696e6744656c61793a20476f7665726e6f72427261766f3a3a5f736574566f74696e67506572696f643ab8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4", + "deployedBytecode": "0x6080604052600436106101cb5760003560e01c8063013cf08b146101d957806302a251a31461022157806306fdde031461024c5780630ea2d98c14610277578063109d0af8146102a257806317977c61146102cd57806317ba1b8b146102f65780631dfb1b5a1461031f57806320606b7014610348578063215809ca1461036657806324bc1a641461038457806325fd935a146103a257806326782247146103c0578063328dd982146103eb5780633932abb1146104245780633bccf4fd146104425780633e4f49e61461046b57806340e58ee5146104a157806356781388146104ca5780635c60da1b146104f3578063791f5d23146105115780637b3c71d31461052f5780637bdbe4d014610558578063878f148214610576578063a64e024a14610594578063b1126263146105b2578063b58131b0146105d0578063b71d1a0c146105ee578063d13f90b414610617578063d33219b414610640578063da35c6641461065e578063da95691a1461067c578063ddf0b009146106a5578063deaaa7cc146106ce578063e23a9a52146106ec578063e48083fe14610366578063e9c714f214610722578063f851a44014610740578063fc4eee421461075e578063fe0d94c11461077c575b6000806101d6613056565b50505b3480156101ee576000806101eb613056565b50505b506102026101fd366004613e37565b61078f565b6040516102189a99989796959493929190615451565b60405180910390f35b34801561023657600080610233613056565b50505b5061023f61084d565b604051610218919061508e565b3480156102615760008061025e613056565b50505b5061026a61085a565b604051610218919061514a565b34801561028c57600080610289613056565b50505b506102a061029b366004613e37565b61088b565b005b3480156102b7576000806102b4613056565b50505b506102c0610995565b604051610218919061512e565b3480156102e2576000806102df613056565b50505b5061023f6102f1366004613be6565b6109b4565b34801561030b57600080610308613056565b50505b506102a061031a366004613e37565b6109cc565b34801561033457600080610331613056565b50505b506102a0610343366004613e37565b610acc565b34801561035d5760008061035a613056565b50505b5061023f610bbb565b34801561037b57600080610378613056565b50505b5061023f610bd2565b34801561039957600080610396613056565b50505b5061023f610bd7565b3480156103b7576000806103b4613056565b50505b5061023f610be5565b3480156103d5576000806103d2613056565b50505b506103de610bf3565b6040516102189190614f54565b348015610400576000806103fd613056565b50505b5061041461040f366004613e37565b610bff565b6040516102189493929190615041565b34801561043957600080610436613056565b50505b5061023f610f25565b34801561045757600080610454613056565b50505b506102a0610466366004613f53565b610f2f565b3480156104805760008061047d613056565b50505b5061049461048f366004613e37565b61115d565b604051610218919061513c565b3480156104b6576000806104b3613056565b50505b506102a06104c5366004613e37565b61139d565b3480156104df576000806104dc613056565b50505b506102a06104ee366004613ea1565b61172a565b34801561050857600080610505613056565b50505b506103de61177b565b34801561052657600080610523613056565b50505b5061023f611787565b34801561054457600080610541613056565b50505b506102a0610553366004613eda565b611795565b34801561056d5760008061056a613056565b50505b5061023f6117ec565b34801561058b57600080610588613056565b50505b506102a06117f1565b3480156105a9576000806105a6613056565b50505b5061023f61194e565b3480156105c7576000806105c4613056565b50505b5061023f611955565b3480156105e5576000806105e2613056565b50505b5061023f61195b565b34801561060357600080610600613056565b50505b506102a0610612366004613be6565b611965565b34801561062c57600080610629613056565b50505b506102a061063b366004613c15565b611a3f565b34801561065557600080610652613056565b50505b506102c0611cdf565b34801561067357600080610670613056565b50505b5061023f611ceb565b3480156106915760008061068e613056565b50505b5061023f6106a0366004613c93565b611cf5565b3480156106ba576000806106b7613056565b50505b506102a06106c9366004613e37565b6122ce565b3480156106e3576000806106e0613056565b50505b5061023f612607565b348015610701576000806106fe613056565b50505b50610715610710366004613e5e565b612613565b604051610218919061539b565b34801561073757600080610734613056565b50505b506102a06126b4565b34801561075557600080610752613056565b50505b506103de61288f565b34801561077357600080610770613056565b50505b5061023f61289a565b6102a061078a366004613e37565b6128a4565b600a6020528060005260406000209050806107a86130c1565b906000600182016107b76130c1565b906101000a90046001600160a01b031690806002016107d46130c1565b90806007016107e16130c1565b90806008016107ee6130c1565b90806009016107fb6130c1565b9080600a016108086130c1565b9080600b016108156130c1565b906000600c82016108246130c1565b906101000a900460ff169080600c0160019061083e6130c1565b906101000a900460ff1690508a565b60046108576130c1565b81565b604051604080820190526017815276436f6d706f756e6420476f7665726e6f7220427261766f60481b602082015281565b6000806108966130c1565b906101000a90046001600160a01b03166001600160a01b03165a6108b8613121565b6001600160a01b0316146108f05760405162461bcd60e51b81526004016108de9061519b565b604051809103906108ed613056565b50505b60018110158015610904575062013b008111155b6109325760405162461bcd60e51b8152600401610920906151db565b6040518091039061092f613056565b50505b6000600461093e6130c1565b90508180600461094c613167565b5050507f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e882881600461097b6130c1565b6040516109899291906154d7565b60405180910390a15050565b600060096109a16130c1565b906101000a90046001600160a01b031681565b600b60205280600052604060002090506108576130c1565b6000806109d76130c1565b906101000a90046001600160a01b03166001600160a01b03165a6109f9613121565b6001600160a01b031614610a315760405162461bcd60e51b8152600401610a1f9061535b565b60405180910390610a2e613056565b50505b690a968163f0a57b4000008110158015610a55575069152d02c7e14af68000008111155b610a835760405162461bcd60e51b8152600401610a719061527b565b60405180910390610a80613056565b50505b60006005610a8f6130c1565b905081806005610a9d613167565b5050507fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc0546181600561097b6130c1565b600080610ad76130c1565b906101000a90046001600160a01b03166001600160a01b03165a610af9613121565b6001600160a01b031614610b315760405162461bcd60e51b8152600401610b1f906151bb565b60405180910390610b2e613056565b50505b60018110158015610b445750619d808111155b610b725760405162461bcd60e51b8152600401610b609061520b565b60405180910390610b6f613056565b50505b60006003610b7e6130c1565b905081806003610b8c613167565b5050507fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a9381600361097b6130c1565b604051610bc790614f49565b604051809103902081565b600181565b6954b40b1f852bda00000081565b69152d02c7e14af680000081565b600060016109a16130c1565b6000818152600a602052606090819081908190604081209050806003018160040182600501836006018380610c326130c1565b806020026020016040519081016040528181529190602083018280610c556130c1565b8015610ca257602002820191906000526020600020905b600082610c776130c1565b906101000a90046001600160a01b03166001600160a01b031681526020019060010190808311610c6c575b505050505093508280610cb36130c1565b806020026020016040519081016040528181529190602083018280610cd66130c1565b8015610d0857602002820191906000526020600020905b81610cf66130c1565b81526020019060010190808311610ced575b505050505092508180610d196130c1565b8060200260200160405190810160405281815291906000602084015b82821015610e0c5783829060005260206000200180610d526130c1565b600181600116156101000203166002900480601f016020809104026020016040519081016040528181529190602083018280610d8c6130c1565b60018160011615610100020316600290048015610df85780601f10610dc6576101008083610db86130c1565b040283529160200191610df8565b820191906000526020600020905b81610ddd6130c1565b81529060010190602001808311610dd457829003601f168201915b505050505081526020019060010190610d35565b5050505091508080610e1c6130c1565b8060200260200160405190810160405281815291906000602084015b82821015610f0f5783829060005260206000200180610e556130c1565b600181600116156101000203166002900480601f016020809104026020016040519081016040528181529190602083018280610e8f6130c1565b60018160011615610100020316600290048015610efb5780601f10610ec9576101008083610ebb6130c1565b040283529160200191610efb565b820191906000526020600020905b81610ee06130c1565b81529060010190602001808311610ed757829003601f168201915b505050505081526020019060010190610e38565b5050505090509450945094509450509193509193565b60036108576130c1565b6000604051610f3d90614f49565b6040518091039020604051604080820190526017815276436f6d706f756e6420476f7665726e6f7220427261766f60481b602082015280519060200120610f82612b13565b5a63996d79a5598160e01b8152602081600483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c528051925060005b6040811015610fd857600082820152602001610fc1565b505050604051602001610fee949392919061509c565b604051602081830303815290604052805190602001209050600060405161101490614f0d565b60405180910390208787604051602001611030939291906150d1565b6040516020818303038152906040528051906020012090506000828260405160200161105d929190614f18565b60405160208183030381529060405280519060200120905060006001828888886040516000815260200160405260405161109a94939291906150f9565b6020604051602081039080840390855a6110b26131b5565b50505050501580156110d1573d6000803e3d60006110ce613056565b50505b5050506020604051035190506001600160a01b0381166111155760405162461bcd60e51b81526004016111039061523b565b60405180910390611112613056565b50505b806001600160a01b03166000805160206158058339815191528a8a61113b858e8e612b26565b60405161114a9392919061552b565b60405180910390a2505050505050505050565b600081600761116a6130c1565b101580156111805750600661117d6130c1565b82115b6111ae5760405162461bcd60e51b815260040161119c9061536b565b604051809103906111ab613056565b50505b6000828152600a6020526040812090506000600c82016111cc6130c1565b906101000a900460ff16156111e5576002915050611398565b806007016111f16130c1565b5a6111fa613265565b11611209576000915050611398565b806008016112156130c1565b5a61121e613265565b1161122d576001915050611398565b80600a016112396130c1565b816009016112456130c1565b11158061126657506954b40b1f852bda000000816009016112646130c1565b105b15611275576003915050611398565b806002016112816130c1565b61128f576004915050611398565b6001600c820161129d6130c1565b906101000a900460ff16156112b6576007915050611398565b61137a816002016112c56130c1565b600060086112d16130c1565b906101000a90046001600160a01b03166001600160a01b031663c1a287e26040518163ffffffff1660e01b815260040160206040518083038186806113146132ab565b15801561132957600080611326613056565b50505b505a6113336131b5565b5050505050158015611352573d6000803e3d600061134f613056565b50505b50505050604051601f3d908101601f191682016040526113759190810190613dca565b612e01565b5a6113836132f7565b10611392576006915050611398565b60059150505b919050565b60076113a88261115d565b60078111156113b357fe5b14156113e35760405162461bcd60e51b81526004016113d19061534b565b604051809103906113e0613056565b50505b6000818152600a6020526040812090506000600182016114016130c1565b906101000a90046001600160a01b03166001600160a01b03165a611423613121565b6001600160a01b0316148061152d5750600561143d6130c1565b600060096114496130c1565b6001600160a01b036101009290920a90041663782d6fe160006001850161146e6130c1565b906101000a90046001600160a01b03166114915a61148a613265565b6001612e3e565b6040518363ffffffff1660e01b81526004016114ae929190614f98565b60206040518083038186806114c16132ab565b1580156114d6576000806114d3613056565b50505b505a6114e06131b5565b50505050501580156114ff573d6000803e3d60006114fc613056565b50505b50505050604051601f3d908101601f191682016040526115229190810190613fa2565b6001600160601b0316105b61155b5760405162461bcd60e51b8152600401611549906152eb565b60405180910390611558613056565b50505b6001600c8201818161156b6130c1565b8160ff02191690831515021790611580613167565b5060009150505b81600301806115946130c1565b90508110156116fa57600060086115a96130c1565b906101000a90046001600160a01b03166001600160a01b031663591fcdfe8360030183816115d56130c1565b81106115dd57fe5b906000526020600020016000906115f26130c1565b906101000a90046001600160a01b03168460040184816116106130c1565b811061161857fe5b9060005260206000200161162a6130c1565b8560050185816116386130c1565b811061164057fe5b906000526020600020018660060186816116586130c1565b811061166057fe5b90600052602060002001876002016116766130c1565b6040518663ffffffff1660e01b8152600401611696959493929190615000565b600060405180830381600087806116ab6132ab565b1580156116c0576000806116bd613056565b50505b505a6116ca61333d565b5050505050501580156116ea573d6000803e3d60006116e7613056565b50505b5050600190920191506115879050565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c82604051610989919061508e565b5a611733613121565b6001600160a01b031660008051602061580583398151915283836117605a611759613121565b8787612b26565b60405161176f9392919061552b565b60405180910390a25050565b600060026109a16130c1565b690a968163f0a57b40000081565b5a61179e613121565b6001600160a01b031660008051602061580583398151915285856117cb5a6117c4613121565b8989612b26565b86866040516117de9594939291906154e5565b60405180910390a250505050565b600a81565b6000806117fc6130c1565b906101000a90046001600160a01b03166001600160a01b03165a61181e613121565b6001600160a01b0316146118565760405162461bcd60e51b81526004016118449061532b565b60405180910390611853613056565b50505b60066118606130c1565b1561188f5760405162461bcd60e51b815260040161187d906152ab565b6040518091039061188c613056565b50505b600180600761189c613167565b50505060076118a96130c1565b8060066118b4613167565b50505060086000906118c46130c1565b906101000a90046001600160a01b03166001600160a01b0316630e18b6816040518163ffffffff1660e01b8152600401600060405180830381600087806119096132ab565b15801561191e5760008061191b613056565b50505b505a61192861333d565b505050505050158015611948573d6000803e3d6000611945613056565b50505b50505050565b62013b0081565b619d8081565b60056108576130c1565b6000806119706130c1565b906101000a90046001600160a01b03166001600160a01b03165a611992613121565b6001600160a01b0316146119ca5760405162461bcd60e51b81526004016119b89061517b565b604051809103906119c7613056565b50505b60008060016119d76130c1565b906101000a90046001600160a01b0316905081600160006101000a816119fb6130c1565b816001600160a01b0302191690836001600160a01b0316021790611a1d613167565b5050506000805160206157a58339815191528183604051610989929190614f7d565b6000806008611a4c6130c1565b906101000a90046001600160a01b03166001600160a01b031614611a945760405162461bcd60e51b8152600401611a829061516b565b60405180910390611a91613056565b50505b600080611a9f6130c1565b906101000a90046001600160a01b03166001600160a01b03165a611ac1613121565b6001600160a01b031614611af95760405162461bcd60e51b8152600401611ae79061526b565b60405180910390611af6613056565b50505b6001600160a01b038516611b315760405162461bcd60e51b8152600401611b1f906151ab565b60405180910390611b2e613056565b50505b6001600160a01b038416611b695760405162461bcd60e51b8152600401611b57906152db565b60405180910390611b66613056565b50505b60018310158015611b7d575062013b008311155b611bab5760405162461bcd60e51b8152600401611b999061537b565b60405180910390611ba8613056565b50505b60018210158015611bbe5750619d808211155b611bec5760405162461bcd60e51b8152600401611bda9061524b565b60405180910390611be9613056565b50505b690a968163f0a57b4000008110158015611c10575069152d02c7e14af68000008111155b611c3e5760405162461bcd60e51b8152600401611c2c9061521b565b60405180910390611c3b613056565b50505b846008600181611c4c6130c1565b816001600160a01b0302191690836001600160a01b0316021790611c6e613167565b50505083600960006101000a81611c836130c1565b816001600160a01b0302191690836001600160a01b0316021790611ca5613167565b5050508260048190611cb5613167565b5050508160038190611cc5613167565b5050508060058190611cd5613167565b5050505050505050565b600060086109a16130c1565b60076108576130c1565b60006006611d016130c1565b611d2f5760405162461bcd60e51b8152600401611d1d906151cb565b60405180910390611d2c613056565b50505b6005611d396130c1565b60006009611d456130c1565b906101000a90046001600160a01b03166001600160a01b031663782d6fe15a611d6c613121565b611d785a61148a613265565b6040518363ffffffff1660e01b8152600401611d95929190614f62565b6020604051808303818680611da86132ab565b158015611dbd57600080611dba613056565b50505b505a611dc76131b5565b5050505050158015611de6573d6000803e3d6000611de3613056565b50505b50505050604051601f3d908101601f19168201604052611e099190810190613fa2565b6001600160601b031611611e415760405162461bcd60e51b8152600401611e2f9061533b565b60405180910390611e3e613056565b50505b84518651148015611e53575083518651145b8015611e60575082518651145b611e8e5760405162461bcd60e51b8152600401611e7c9061525b565b60405180910390611e8b613056565b50505b8551611ebe5760405162461bcd60e51b8152600401611eac906152bb565b60405180910390611ebb613056565b50505b600a86511115611ef25760405162461bcd60e51b8152600401611ee0906152fb565b60405180910390611eef613056565b50505b6000600b60005a611f01613121565b6001600160a01b03166001600160a01b03168152602001908152602001600020611f296130c1565b90508015611fbc576000611f3c8261115d565b90506001816007811115611f4c57fe5b1415611f7c5760405162461bcd60e51b8152600401611f6a9061531b565b60405180910390611f79613056565b50505b6000816007811115611f8a57fe5b1415611fba5760405162461bcd60e51b8152600401611fa89061530b565b60405180910390611fb7613056565b50505b505b6000611fd45a611fca613265565b60036113756130c1565b90506000611fe68260046113756130c1565b90506007600081611ff56130c1565b91600183019150612004613167565b50505061200f6133ed565b604051806101c0016040528060076120256130c1565b81526020015a612033613121565b6001600160a01b03168152602001600081526020018b81526020018a815260200189815260200188815260200184815260200183815260200160008152602001600081526020016000815260200160001515815260200160001515815250905080600a6000836000015181526020019081526020016000208151816120b6613167565b50506020820151600180830190816120cc6130c1565b816001600160a01b0302191690836001600160a01b03160217906120ee613167565b505050604082015181600201612102613167565b505060608201518160030190805161211e929160200190613469565b506080820151816004019080516121399291602001906134f3565b5060a082015181600501908051612154929160200190613553565b5060c08201518160060190805161216f9291602001906135bb565b5060e082015181600701612181613167565b505061010082015181600801612195613167565b5050610120820151816009016121a9613167565b505061014082015181600a016121bd613167565b505061016082015181600b016121d1613167565b5050610180820151600c82016001816121e86130c1565b8160ff021916908315150217906121fd613167565b5050506101a0820151600c8201610100816122166130c1565b8160ff0219169083151502179061222b613167565b5084935050505051600b600083602001516001600160a01b03166001600160a01b031681526020019081526020016000208190612266613167565b5050507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e081600001515a612298613121565b8c8c8c8c89898e6040516122b4999897969594939291906153a9565b60405180910390a180519450505050505b95945050505050565b60046122d98261115d565b60078111156122e457fe5b146123135760405162461bcd60e51b81526004016123019061528b565b60405180910390612310613056565b50505b6000818152600a60205260408120905060006123805a6123316132f7565b6000600861233d6130c1565b906101000a90046001600160a01b03166001600160a01b0316636a42b8f86040518163ffffffff1660e01b815260040160206040518083038186806113146132ab565b905060005b82600301806123926130c1565b90508110156125b7576125af8360030182816123ac6130c1565b81106123b457fe5b906000526020600020016000906123c96130c1565b906101000a90046001600160a01b03168460040183816123e76130c1565b81106123ef57fe5b906000526020600020016124016130c1565b85600501848161240f6130c1565b811061241757fe5b906000526020600020018061242a6130c1565b600181600116156101000203166002900480601f0160208091040260200160405190810160405281815291906020830182806124646130c1565b600181600116156101000203166002900480156124d05780601f1061249e5761010080836124906130c1565b0402835291602001916124d0565b820191906000526020600020905b816124b56130c1565b815290600101906020018083116124ac57829003601f168201915b50505050508660060185816124e36130c1565b81106124eb57fe5b90600052602060002001806124fe6130c1565b600181600116156101000203166002900480601f0160208091040260200160405190810160405281815291906020830182806125386130c1565b600181600116156101000203166002900480156125a45780601f106125725761010080836125646130c1565b0402835291602001916125a4565b820191906000526020600020905b816125896130c1565b8152906001019060200180831161258057829003601f168201915b505050505086612e78565b600101612385565b508080600284016125c6613167565b5050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289283826040516125fa9291906154d7565b60405180910390a1505050565b604051610bc790614f0d565b61261b613623565b6000838152600a602052604090206001600160a01b0383166000908152600d919091016020526040902060405160608101604052908160008261265c6130c1565b60ff6101009290920a9004161515815260200160018261267a6130c1565b60ff6101009290920a90041681526020016002826126966130c1565b6001600160601b036101009290920a90041690525090505b92915050565b600060016126c06130c1565b906101000a90046001600160a01b03166001600160a01b03165a6126e2613121565b6001600160a01b031614801561270a575060005a6126fe613121565b6001600160a01b031614155b6127385760405162461bcd60e51b8152600401612726906152cb565b60405180910390612735613056565b50505b600080806127446130c1565b906101000a90046001600160a01b03169050600060016000906127656130c1565b906101000a90046001600160a01b0316905060016000906127846130c1565b906101000a90046001600160a01b03166000806101000a816127a46130c1565b816001600160a01b0302191690836001600160a01b03160217906127c6613167565b5050506000600160006101000a816127dc6130c1565b816001600160a01b0302191690836001600160a01b03160217906127fe613167565b5050507ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc826000809061282f6130c1565b906101000a90046001600160a01b031660405161284d929190614f7d565b60405180910390a16000805160206157a583398151915281600060016128716130c1565b906101000a90046001600160a01b0316604051610989929190614f7d565b6000806109a16130c1565b60066108576130c1565b60056128af8261115d565b60078111156128ba57fe5b146128e95760405162461bcd60e51b81526004016128d79061522b565b604051809103906128e6613056565b50505b6000818152600a6020526040812090506001600c82016101008161290b6130c1565b8160ff02191690831515021790612920613167565b5060009150505b81600301806129346130c1565b9050811015612ae357600060086129496130c1565b906101000a90046001600160a01b03166001600160a01b0316630825f38f8360040183816129756130c1565b811061297d57fe5b9060005260206000200161298f6130c1565b84600301848161299d6130c1565b81106129a557fe5b906000526020600020016000906129ba6130c1565b906101000a90046001600160a01b03168560040185816129d86130c1565b81106129e057fe5b906000526020600020016129f26130c1565b866005018681612a006130c1565b8110612a0857fe5b90600052602060002001876006018781612a206130c1565b8110612a2857fe5b9060005260206000200188600201612a3e6130c1565b6040518763ffffffff1660e01b8152600401612a5e959493929190615000565b600060405180830381858880612a726132ab565b158015612a8757600080612a84613056565b50505b505a612a9161333d565b505050505050158015612ab1573d6000803e3d6000612aae613056565b50505b50505050506040513d6000823e601f3d908101601f19168201604052612ada9190810190613df1565b50600101612927565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f82604051610989919061508e565b6000805a612b1f613642565b9150505b90565b60006001612b338461115d565b6007811115612b3e57fe5b14612b6d5760405162461bcd60e51b8152600401612b5b906151eb565b60405180910390612b6a613056565b50505b60028260ff161115612ba35760405162461bcd60e51b8152600401612b919061515b565b60405180910390612ba0613056565b50505b6000838152600a602052604081206001600160a01b0386166000908152600d8201602052909150604081209050600081612bdb6130c1565b60ff6101009290920a90041615612c165760405162461bcd60e51b8152600401612c04906151fb565b60405180910390612c13613056565b50505b6000806009612c236130c1565b906101000a90046001600160a01b03166001600160a01b031663782d6fe18885600701612c4e6130c1565b6040518363ffffffff1660e01b8152600401612c6b929190614f98565b6020604051808303818680612c7e6132ab565b158015612c9357600080612c90613056565b50505b505a612c9d6131b5565b5050505050158015612cbc573d6000803e3d6000612cb9613056565b50505b50505050604051601f3d908101601f19168201604052612cdf9190810190613fa2565b905060ff8516612d1c57612d0783600a01612cf86130c1565b826001600160601b0316612e01565b80600a8501612d14613167565b505050612d70565b8460ff1660011415612d4457612d3783600901612cf86130c1565b8060098501612d14613167565b8460ff1660021415612d7057612d5f83600b01612cf86130c1565b80600b8501612d6c613167565b5050505b6001828181612d7d6130c1565b8160ff02191690831515021790612d92613167565b5086915083905061010081612da56130c1565b8160ff021916908360ff16021790612dbb613167565b508291508390506201000081612dcf6130c1565b816001600160601b0302191690836001600160601b0316021790612df1613167565b50919450505050505b9392505050565b600082820183811015612dfa5760405162461bcd60e51b8152600401612e269061529b565b60405180910390612e35613056565b50509392505050565b600082821115612e725760405162461bcd60e51b8152600401612e609061538b565b60405180910390612e6f613056565b50505b50900390565b60006008612e846130c1565b906101000a90046001600160a01b03166001600160a01b031663f2b065378686868686604051602001612ebb959493929190614fa6565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401612eed919061508e565b6020604051808303818680612f006132ab565b158015612f1557600080612f12613056565b50505b505a612f1f6131b5565b5050505050158015612f3e573d6000803e3d6000612f3b613056565b50505b50505050604051601f3d908101601f19168201604052612f619190810190613da3565b15612f905760405162461bcd60e51b8152600401612f7e9061518b565b60405180910390612f8d613056565b50505b60006008612f9c6130c1565b906101000a90046001600160a01b03166001600160a01b0316633a66f90186868686866040518663ffffffff1660e01b8152600401612fdf959493929190614fa6565b60206040518083038160008780612ff46132ab565b15801561300957600080613006613056565b50505b505a61301361333d565b505050505050158015613033573d6000803e3d6000613030613056565b50505b50505050604051601f3d908101601f191682016040526119459190810190613dca565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561308e578086015182820160400152602001613073565b506020828760640184336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c52505050565b6303daa959598160e01b8152836004820152602081602483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c528051935060005b604081101561311c57600082820152602001613105565b505050565b6373509064598160e01b8152602081600483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c5280516000825293506020613105565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c52600081526020613105565b638540661f598160e01b8152836004820152846024820152606060448201528660648201526084810160005b888110156131f95780880151828201526020016131e1565b506060828960a40184336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c52815160408301513d6000853e8b8b82606087013350600060045af15059845b8181101561325a5760008152602001613246565b50919b505050505050565b635a98c361598160e01b8152602081600483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c5280516000825293506020613105565b638435035b598160e01b8152836004820152602081602483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c5280516000825293506020613105565b63bdbf8c36598160e01b8152602081600483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c5280516000825293506020613105565b6385979f76598160e01b8152836004820152846024820152606060448201528760648201526084810160005b89811015613381578089015182820152602001613369565b506060828a60a40184336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c52815160408301513d6000853e8c8c82606087013350600060045af15059845b818110156133e257600081526020016133ce565b50919c505050505050565b604051806101c001604052806000815260200160006001600160a01b03168152602001600081526020016060815260200160608152602001606081526020016060815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b82806134736130c1565b828261347d613167565b50509060005260206000209081019282156134e3579160200282015b828111156134e3578251826001816134af6130c1565b816001600160a01b0302191690836001600160a01b03160217906134d1613167565b50505091602001919060010190613499565b506134ef929150613688565b5090565b82806134fd6130c1565b8282613507613167565b5050906000526020600020908101928215613547579160200282015b8281111561354757825182613536613167565b505091602001919060010190613523565b506134ef9291506136c4565b828061355d6130c1565b8282613567613167565b50509060005260206000209081019282156135af579160200282015b828111156135af5782518290805161359f9291602001906136e9565b5091602001919060010190613583565b506134ef929150613779565b82806135c56130c1565b82826135cf613167565b5050906000526020600020908101928215613617579160200282015b828111156136175782518290805161360792916020019061379c565b50916020019190600101906135eb565b506134ef929150613825565b6040516060810160409081526000808352602083018190529082015290565b6390580256598160e01b8152602081600483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c5280516000825293506020613105565b612b2391905b808211156134ef576000816001816136a46130c1565b906001600160a01b03021916906136b9613167565b50505060010161368e565b612b2391905b808211156134ef57600080826136de613167565b5050506001016136ca565b82806136f36130c1565b600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061373a57805160ff19168380011785613733613167565b5050613547565b82800160010185613749613167565b50508215613547579182015b8281111561354757825182613768613167565b505091602001919060010190613755565b612b2391905b808211156134ef5760006137938282613848565b5060010161377f565b82806137a66130c1565b600181600116156101000203166002900490600052602060002090601f016020900481019282601f106137e657805160ff19168380011785613733613167565b828001600101856137f5613167565b50508215613547579182015b8281111561354757825182613814613167565b505091602001919060010190613801565b612b2391905b808211156134ef57600061383f8282613848565b5060010161382b565b50806138526130c1565b600181600116156101000203166002900460008261386e613167565b505080601f1061387e575061389a565b601f016020900490600052602060002061389a918101906136c4565b50565b80356126ae816156c6565b600082601f8301126138c2576000806138bf613056565b50505b81356138d56138d082615597565b615564565b9150818183526020840193506020810190508385602084028201111561390357600080613900613056565b50505b60005b8381101561392f5781613919888261389d565b8452506020928301929190910190600101613906565b5050505092915050565b600082601f83011261395357600080613950613056565b50505b81356139616138d082615597565b81815260209384019390925082018360005b8381101561392f57813586016139898882613ab0565b8452506020928301929190910190600101613973565b600082601f8301126139b9576000806139b6613056565b50505b81356139c76138d082615597565b81815260209384019390925082018360005b8381101561392f57813586016139ef8882613ab0565b84525060209283019291909101906001016139d9565b600082601f830112613a1f57600080613a1c613056565b50505b8135613a2d6138d082615597565b91508181835260208401935060208101905083856020840282011115613a5b57600080613a58613056565b50505b60005b8381101561392f5781613a718882613a96565b8452506020928301929190910190600101613a5e565b6000815190506126ae816156e0565b80356126ae816156e9565b6000815190506126ae816156e9565b600082601f830112613aca57600080613ac7613056565b50505b8135613ad86138d0826155c0565b91508082526020830160208301858383011115613afd57600080613afa613056565b50505b613b0883828461567a565b50505092915050565b600082601f830112613b2b57600080613b28613056565b50505b8151613b396138d0826155c0565b91508082526020830160208301858383011115613b5e57600080613b5b613056565b50505b613b08838284615686565b60008083601f840112613b8457600080613b81613056565b50505b5081356001600160401b03811115613ba457600080613ba1613056565b50505b602083019150836001820283011115613bc557600080613bc2613056565b50505b9250929050565b80356126ae816156f2565b6000815190506126ae816156fb565b600060208284031215613c0157600080613bfe613056565b50505b6000613c0d848461389d565b949350505050565b600080600080600060a08688031215613c3657600080613c33613056565b50505b6000613c42888861389d565b9550506020613c538882890161389d565b9450506040613c6488828901613a96565b9350506060613c7588828901613a96565b9250506080613c8688828901613a96565b9150509295509295909350565b600080600080600060a08688031215613cb457600080613cb1613056565b50505b85356001600160401b03811115613cd357600080613cd0613056565b50505b613cdf888289016138a8565b95505060208601356001600160401b03811115613d0457600080613d01613056565b50505b613d1088828901613a05565b94505060408601356001600160401b03811115613d3557600080613d32613056565b50505b613d418882890161399f565b93505060608601356001600160401b03811115613d6657600080613d63613056565b50505b613d7288828901613939565b92505060808601356001600160401b03811115613d9757600080613d94613056565b50505b613c8688828901613ab0565b600060208284031215613dbe57600080613dbb613056565b50505b6000613c0d8484613a87565b600060208284031215613de557600080613de2613056565b50505b6000613c0d8484613aa1565b600060208284031215613e0c57600080613e09613056565b50505b81516001600160401b03811115613e2b57600080613e28613056565b50505b613c0d84828501613b11565b600060208284031215613e5257600080613e4f613056565b50505b6000613c0d8484613a96565b60008060408385031215613e7a57600080613e77613056565b50505b6000613e868585613a96565b9250506020613e978582860161389d565b9150509250929050565b60008060408385031215613ebd57600080613eba613056565b50505b6000613ec98585613a96565b9250506020613e9785828601613bcc565b60008060008060608587031215613ef957600080613ef6613056565b50505b6000613f058787613a96565b9450506020613f1687828801613bcc565b93505060408501356001600160401b03811115613f3b57600080613f38613056565b50505b613f4787828801613b69565b95989497509550505050565b600080600080600060a08688031215613f7457600080613f71613056565b50505b6000613f808888613a96565b9550506020613f9188828901613bcc565b9450506040613c6488828901613bcc565b600060208284031215613fbd57600080613fba613056565b50505b6000613c0d8484613bd7565b6000613fd58383614004565b505060200190565b6000612dfa83836141a6565b6000613fd5838361418c565b613ffe81615652565b82525050565b613ffe8161561a565b600061401882615607565b6140228185615611565b935061402d836155f0565b8060005b8381101561405b5781516140458882613fc9565b9750614050836155f0565b925050600101614031565b509495945050505050565b600061407182615607565b61407b8185615611565b93508360208202850161408d856155f0565b8060005b858110156140c757848403895281516140aa8582613fdd565b94506140b5836155f0565b60209a909a0199925050600101614091565b5091979650505050505050565b60006140df82615607565b6140e98185615611565b9350836020820285016140fb856155f0565b8060005b858110156140c757848403895281516141188582613fdd565b9450614123836155f0565b60209a909a01999250506001016140ff565b600061414082615607565b61414a8185615611565b9350614155836155f0565b8060005b8381101561405b57815161416d8882613fe9565b9750614178836155f0565b925050600101614159565b613ffe81615625565b613ffe81612b23565b613ffe6141a182612b23565b612b23565b60006141b182615607565b6141bb8185615611565b93506141cb818560208601615686565b6141d4816156b2565b9093019392505050565b6000816141e96130c1565b60018116801561420057600181146142265761426d565b607f60028304166142118187615611565b60ff198416815295505060208501925061426d565b600282046142348187615611565b955061423f856155f6565b60005b8281101561426657816142536130c1565b8882015260019190910190602001614242565b8701945050505b505092915050565b613ffe81615659565b613ffe81615664565b60006142938385615611565b93506142a083858461567a565b6141d4836156b2565b6000816142b46130c1565b60018116801561420057600181146142cb5761426d565b600282046142d98187615611565b95506142e4856155f6565b60005b8281101561426657816142f86130c1565b88820152600191909101906020016142e7565b6000614318603283615611565b60008051602061572583398151915281527120696e76616c696420766f7465207479706560701b602082015260400192915050565b600061435a602883611398565b7f42616c6c6f742875696e743235362070726f706f73616c49642c75696e743820815267737570706f72742960c01b602082015260280192915050565b60006143a4603383615611565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a2063616e206f8152726e6c7920696e697469616c697a65206f6e636560681b602082015260400192915050565b60006143f9602a83615611565b7f476f7665726e6f72427261766f3a5f73657450656e64696e6741646d696e3a2081526961646d696e206f6e6c7960b01b602082015260400192915050565b6000614445605583615611565b7f476f7665726e6f72427261766f3a3a71756575654f72526576657274496e746581527f726e616c3a206964656e746963616c2070726f706f73616c20616374696f6e20602082015274616c7265616479207175657565642061742065746160581b604082015260600192915050565b60006144c2602b83615611565b6000805160206157e583398151915281526a2061646d696e206f6e6c7960a81b602082015260400192915050565b60006144fd603383615611565b60008051602061574583398151915281527269642074696d656c6f636b206164647265737360681b602082015260400192915050565b6000614540602a83615611565b6000805160206157c583398151915281526961646d696e206f6e6c7960b01b602082015260400192915050565b600061457a603183615611565b7f476f7665726e6f72427261766f3a3a70726f706f73653a20476f7665726e6f7281527020427261766f206e6f742061637469766560781b602082015260400192915050565b60006145cd600283611398565b61190160f01b815260020192915050565b60006145eb603683615611565b6000805160206157e5833981519152815275081a5b9d985b1a59081d9bdd1a5b99c81c195c9a5bd960521b602082015260400192915050565b6000614631603183615611565b600080516020615725833981519152815270081d9bdd1a5b99c81a5cc818db1bdcd959607a1b602082015260400192915050565b6000614672603483615611565b600080516020615725833981519152815273081d9bdd195c88185b1c9958591e481d9bdd195960621b602082015260400192915050565b60006146b6603483615611565b6000805160206157c5833981519152815273696e76616c696420766f74696e672064656c617960601b602082015260400192915050565b60006146fa603583615611565b6000805160206157458339815191528152741a59081c1c9bdc1bdcd85b081d1a1c995cda1bdb19605a1b602082015260400192915050565b600061473f604583615611565b7f476f7665726e6f72427261766f3a3a657865637574653a2070726f706f73616c81527f2063616e206f6e6c7920626520657865637574656420696620697420697320716020820152641d595d595960da1b604082015260600192915050565b60006147ac602f83615611565b7f476f7665726e6f72427261766f3a3a63617374566f746542795369673a20696e81526e76616c6964207369676e617475726560881b602082015260400192915050565b60006147fd602f83615611565b60008051602061574583398151915281526e696420766f74696e672064656c617960881b602082015260400192915050565b600061483c604483615611565b7f476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73616c81527f2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d6020820152630c2e8c6d60e31b604082015260600192915050565b60006148a8602583615611565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a2061646d696e815264206f6e6c7960d81b602082015260400192915050565b60006148ef604083615611565b60008051602061570583398151915281527f686f6c643a20696e76616c69642070726f706f73616c207468726573686f6c64602082015260400192915050565b600061493c604483615611565b7f476f7665726e6f72427261766f3a3a71756575653a2070726f706f73616c206381527f616e206f6e6c79206265207175657565642069662069742069732073756363656020820152631959195960e21b604082015260600192915050565b60006149a8601183615611565b706164646974696f6e206f766572666c6f7760781b815260200192915050565b60006149d5604383611398565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b6000614a40603083615611565b7f476f7665726e6f72427261766f3a3a5f696e6974696174653a2063616e206f6e81526f6c7920696e697469617465206f6e636560801b602082015260400192915050565b6000614a92602c83615611565b7f476f7665726e6f72427261766f3a3a70726f706f73653a206d7573742070726f81526b7669646520616374696f6e7360a01b602082015260400192915050565b6000614ae0602e83615611565b7f476f7665726e6f72427261766f3a5f61636365707441646d696e3a2070656e6481526d696e672061646d696e206f6e6c7960901b602082015260400192915050565b6000614b30602f83615611565b60008051602061574583398151915281526e696420636f6d70206164647265737360881b602082015260400192915050565b6000614b6f602f83615611565b7f476f7665726e6f72427261766f3a3a63616e63656c3a2070726f706f7365722081526e18589bdd99481d1a1c995cda1bdb19608a1b602082015260400192915050565b6000614bc0602883615611565b7f476f7665726e6f72427261766f3a3a70726f706f73653a20746f6f206d616e7981526720616374696f6e7360c01b602082015260400192915050565b6000614c0a605983615611565b600080516020615765833981519152815260008051602061578583398151915260208201527808185b1c9958591e481c195b991a5b99c81c1c9bdc1bdcd85b603a1b604082015260600192915050565b6000614c67605883615611565b600080516020615765833981519152815260008051602061578583398151915260208201527708185b1c9958591e481858dd1a5d99481c1c9bdc1bdcd85b60421b604082015260600192915050565b60006126ae600083615611565b6000614cd0602483615611565b7f476f7665726e6f72427261766f3a3a5f696e6974696174653a2061646d696e208152636f6e6c7960e01b602082015260400192915050565b6000614d16603f83615611565b7f476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73657281527f20766f7465732062656c6f772070726f706f73616c207468726573686f6c6400602082015260400192915050565b6000614d75603683615611565b7f476f7665726e6f72427261766f3a3a63616e63656c3a2063616e6e6f742063618152751b98d95b08195e1958dd5d1959081c1c9bdc1bdcd85b60521b602082015260400192915050565b6000614dcd603083615611565b60008051602061570583398151915281526f686f6c643a2061646d696e206f6e6c7960801b602082015260400192915050565b6000614e0d602983615611565b7f476f7665726e6f72427261766f3a3a73746174653a20696e76616c69642070728152681bdc1bdcd85b081a5960ba1b602082015260400192915050565b6000614e58603083615611565b60008051602061574583398151915281526f1a59081d9bdd1a5b99c81c195c9a5bd960821b602082015260400192915050565b6000614e98601583615611565b747375627472616374696f6e20756e646572666c6f7760581b815260200192915050565b606082018151614ecc8482614183565b506020820151614edf6020850182614ef2565b5060408201516119486040850182614f04565b613ffe81615640565b613ffe8161566f565b613ffe81615646565b60006126ae8261434d565b6000614f23826145c0565b9150614f2f8285614195565b602082019150614f3f8284614195565b5060200192915050565b60006126ae826149c8565b602081016126ae8284614004565b60408101614f708285613ff5565b612dfa602083018461418c565b60408101614f8b8285614004565b612dfa6020830184614004565b60408101614f708285614004565b60a08101614fb48288614004565b614fc1602083018761418c565b8181036040830152614fd381866141a6565b90508181036060830152614fe781856141a6565b9050614ff6608083018461418c565b9695505050505050565b60a0810161500e8288614004565b61501b602083018761418c565b818103604083015261502d81866142a9565b90508181036060830152614fe781856141de565b60808082528101615052818761400d565b905081810360208301526150668186614135565b9050818103604083015261507a81856140d4565b90508181036060830152614ff68184614066565b602081016126ae828461418c565b608081016150aa828761418c565b6150b7602083018661418c565b6150c4604083018561418c565b6122c56060830184614004565b606081016150df828661418c565b6150ec602083018561418c565b613c0d6040830184614ef2565b60808101615107828761418c565b6151146020830186614ef2565b615121604083018561418c565b6122c5606083018461418c565b602081016126ae8284614275565b602081016126ae828461427e565b60208082528101612dfa81846141a6565b602080825281016126ae8161430b565b602080825281016126ae81614397565b602080825281016126ae816143ec565b602080825281016126ae81614438565b602080825281016126ae816144b5565b602080825281016126ae816144f0565b602080825281016126ae81614533565b602080825281016126ae8161456d565b602080825281016126ae816145de565b602080825281016126ae81614624565b602080825281016126ae81614665565b602080825281016126ae816146a9565b602080825281016126ae816146ed565b602080825281016126ae81614732565b602080825281016126ae8161479f565b602080825281016126ae816147f0565b602080825281016126ae8161482f565b602080825281016126ae8161489b565b602080825281016126ae816148e2565b602080825281016126ae8161492f565b602080825281016126ae8161499b565b602080825281016126ae81614a33565b602080825281016126ae81614a85565b602080825281016126ae81614ad3565b602080825281016126ae81614b23565b602080825281016126ae81614b62565b602080825281016126ae81614bb3565b602080825281016126ae81614bfd565b602080825281016126ae81614c5a565b602080825281016126ae81614cc3565b602080825281016126ae81614d09565b602080825281016126ae81614d68565b602080825281016126ae81614dc0565b602080825281016126ae81614e00565b602080825281016126ae81614e4b565b602080825281016126ae81614e8b565b606081016126ae8284614ebc565b61012081016153b8828c61418c565b6153c5602083018b613ff5565b81810360408301526153d7818a61400d565b905081810360608301526153eb8189614135565b905081810360808301526153ff81886140d4565b905081810360a08301526154138187614066565b905061542260c083018661418c565b61542f60e083018561418c565b81810361010083015261544281846141a6565b9b9a5050505050505050505050565b6101408101615460828d61418c565b61546d602083018c614004565b61547a604083018b61418c565b615487606083018a61418c565b615494608083018961418c565b6154a160a083018861418c565b6154ae60c083018761418c565b6154bb60e083018661418c565b6154c9610100830185614183565b615442610120830184614183565b60408101614f70828561418c565b608081016154f3828861418c565b6155006020830187614ef2565b61550d6040830186614efb565b8181036060830152615520818486614287565b979650505050505050565b60808101615539828661418c565b6155466020830185614ef2565b6155536040830184614efb565b81810360608301526122c581614cb6565b600060405190508181018181106001600160401b038211171561558f5760008061558c613056565b50505b604052919050565b60006001600160401b038211156155b6576000806155b3613056565b50505b5060209081020190565b60006001600160401b038211156155df576000806155dc613056565b50505b506020601f91909101601f19160190565b60200190565b600081815281906020902092915050565b6000815192915050565b90815260200190565b60006126ae82615634565b151590565b80611398816156bc565b6001600160a01b031690565b60ff1690565b6001600160601b031690565b60006126ae825b60006126ae8261561a565b60006126ae8261562a565b60006126ae82615646565b82818337506000910152565b60005b838110156156a1578082015183820152602001615689565b838111156119485750506000910152565b601f01601f191690565b6008811061389a57fe5b6156cf8161561a565b811461389a5760008061311c613056565b6156cf81615625565b6156cf81612b23565b6156cf81615640565b6156cf8161564656fe476f7665726e6f72427261766f3a3a5f73657450726f706f73616c5468726573476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c6976652070726f706f73616c207065722070726f706f7365722c20666f756e6420616eca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9476f7665726e6f72427261766f3a3a5f736574566f74696e6744656c61793a20476f7665726e6f72427261766f3a3a5f736574566f74696e67506572696f643ab8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4", + "sourceMap": "101:18364:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;101:18364:1;;;;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;242:1;231:9;227:17;295:4;284:9;277:23;362:6;355:4;344:9;340:20;333:36;424:1;407:143;436:6;431:3;428:15;407:143;;;536:3;528:6;524:16;518:23;486:30;;;505:4;486:30;479:63;462:4;453:14;407:143;;;411:16;720:4;709:9;700:6;694:4;690:17;679:9;674:51;;;;;;;;;;;;;;;;;;;;;;;;;;0:821;;;101:18364:1:o;:::-;;;;;;;", + "deployedSourceMap": "101:18364:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;3423:43:3;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;-1:-1;3423:43:3;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2843:24;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;2843:24:3;;;:::i;:::-;;;;;;;;236:55:1;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;236:55:1;;;:::i;:::-;;;;;;;;14636:449;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;-1:-1;14636:449:1;;;;;;;;:::i;:::-;;3324:25:3;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;3324:25:3;;;:::i;:::-;;;;;;;;3527:50;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;-1:-1;3527:50:3;;;;;;;;:::i;15306:529:1:-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;-1:-1;15306:529:1;;;;;;;;:::i;14060:432::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;-1:-1;14060:432:1;;;;;;;;:::i;1421:122::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;1421:122:1;;;:::i;611:42::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;611:42:1;;;:::i;1134:44::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;1134:44:1;;;:::i;484:55::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;484:55:1;;;:::i;2187:27:3:-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;2187:27:3;;;:::i;:::-;;;;;;;;8976:286:1;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;-1:-1;8976:286:1;;;;;;;;:::i;:::-;;;;;;;;;;;2749:23:3;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;2749:23:3;;;:::i;11871:680:1:-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;-1:-1;11871:680:1;;;;;;;;:::i;9776:1039::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;-1:-1;9776:1039:1;;;;;;;;:::i;:::-;;;;;;;;8070:708;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;-1:-1;8070:708:1;;;;;;;;:::i;11024:177::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;-1:-1;11024:177:1;;;;;;;;:::i;2263:29:3:-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;2263:29:3;;;:::i;353:54:1:-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;353:54:1;;;:::i;11489:215::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;-1:-1;11489:215:1;;;;;;;;:::i;1290:47::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;1290:47:1;;;:::i;16030:310::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;16030:310:1;;;:::i;726:46::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;726:46:1;;;:::i;934:45::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;934:45:1;;;:::i;2961:29:3:-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;2961:29:3;;;:::i;16658:521:1:-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;-1:-1;16658:521:1;;;;;;;;:::i;2102:1160::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;-1:-1;2102:1160:1;;;;;;;;:::i;3223:33:3:-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;3223:33:3;;;:::i;3129:25::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;3129:25:3;;;:::i;3734:2307:1:-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;-1:-1;3734:2307:1;;;;;;;;:::i;6175:577::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;-1:-1;6175:577:1;;;;;;;;:::i;1630:95::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;1630:95:1;;;:::i;9476:152::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;-1:-1;9476:152:1;;;;;;;;:::i;:::-;;;;;;;;17362:621;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;17362:621:1;;;:::i;2104:20:3:-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;2104:20:3;;;:::i;3047:29::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;3047:29:3;;;:::i;7299:567:1:-;;;;;;;;;:::i;3423:43:3:-;;;;;;;;;;;-1:-1:-1;3423:43:3;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3423:43:3;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;2843:24::-;;;;:::i;:::-;;:::o;236:55:1:-;;;;;;;;;;;;-1:-1:-1;;;236:55:1;;;;;:::o;14636:449::-;14725:5;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;14725:5:1;-1:-1:-1;;;;;14711:19:1;:10;;;:::i;:::-;-1:-1:-1;;;;;14711:19:1;;14703:75;;;;-1:-1:-1;;;14703:75:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;652:1;14796:15;:36;;:76;;;;;767:5;14836:15;:36;;14796:76;14788:143;;;;-1:-1:-1;;;14788:143:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;14941:20;14964:12;;;:::i;:::-;14941:35;-1:-1:-1;15001:15:1;;14986:12;:30;;:::i;:::-;;;;15032:46;15048:15;15065:12;;;:::i;:::-;15032:46;;;;;;;;;;;;;;;;14636:449;;:::o;3324:25:3:-;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3324:25:3;;:::o;3527:50::-;;;;;;;;;;;-1:-1:-1;3527:50:3;;:::i;15306:529:1:-;15405:5;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;15405:5:1;-1:-1:-1;;;;;15391:19:1;:10;;;:::i;:::-;-1:-1:-1;;;;;15391:19:1;;15383:80;;;;-1:-1:-1;;;15383:80:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;399:8;15481:20;:46;;:96;;;;;530:9;15531:20;:46;;15481:96;15473:173;;;;-1:-1:-1;;;15473:173:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;15656:25;15684:17;;;:::i;:::-;15656:45;-1:-1:-1;15731:20:1;;15711:17;:40;;:::i;:::-;;;;15767:61;15788:20;15810:17;;;:::i;14060:432::-;14147:5;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;14147:5:1;-1:-1:-1;;;;;14133:19:1;:10;;;:::i;:::-;-1:-1:-1;;;;;14133:19:1;;14125:74;;;;-1:-1:-1;;;14125:74:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;881:1;14217:14;:34;;:72;;;;;974:5;14255:14;:34;;14217:72;14209:137;;;;-1:-1:-1;;;14209:137:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;14356:19;14378:11;;;:::i;:::-;14356:33;-1:-1:-1;14413:14:1;;14399:11;:28;;:::i;:::-;;;;14443:42;14458:14;14473:11;;;:::i;1421:122::-;1463:80;;;;;;;;;;;;;;1421:122;:::o;611:42::-;652:1;611:42;:::o;1134:44::-;1169:9;1134:44;:::o;484:55::-;530:9;484:55;:::o;2187:27:3:-;;;;;:::i;8976:286:1:-;9148:18;9169:21;;;:9;:21;;9036:24;;;;;;;;9169:21;9148:18;9169:21;9148:42;;9208:1;:9;;9219:1;:8;;9229:1;:12;;9243:1;:11;;9200:55;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;9200:55:1;-1:-1:-1;;;;;9200:55:1;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8976:286;;;;;:::o;2749:23:3:-;;;;:::i;11871:680:1:-;11976:23;1463:80;;;;;;;;;;;;;;12056:4;;;;;;;;;;;-1:-1:-1;;;12056:4:1;;;;;12040:22;;;;;12064:20;:18;:20::i;:::-;12094:4;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;222:2;211:9;208:1;197:9;192:33;;;;;;;;;;;;;;;;;;;;;;;;;;241:9;235:16;229:22;;491:1;474:100;503:4;498:3;495:13;474:100;;;568:1;547:19;;;540:30;527:4;518:14;474:100;;;478:16;0:577;;12012:88:1;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12012:88:1;;;12002:99;;;;;;11976:125;;12111:18;1672:53;;;;;;;;;;;;;;12170:10;12182:7;12142:48;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12142:48:1;;;12132:59;;;;;;12111:80;;12201:14;12257:15;12274:10;12228:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12228:57:1;;;12218:68;;;;;;12201:85;;12296:17;12316:26;12326:6;12334:1;12337;12340;12316:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;;:::i;:::-;;;5:2;12316:26:1;;;;;;;;12296:46;-1:-1:-1;;;;;;12360:23:1;;12352:83;;;;-1:-1:-1;;;12352:83:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;12459:9;-1:-1:-1;;;;;12450:94:1;-1:-1:-1;;;;;;;;;;;12470:10:1;12482:7;12491:48;12508:9;12519:10;12531:7;12491:16;:48::i;:::-;12450:94;;;;;;;;;;;;;;;;;11871:680;;;;;;;;;:::o;9776:1039::-;9829:13;9879:10;9862:13;;;:::i;:::-;:27;;:61;;;;;9906:17;;;:::i;:::-;9893:10;:30;9862:61;9854:115;;;;-1:-1:-1;;;9854:115:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;9979:25;10007:21;;;:9;:21;;;9979:25;10007:21;9979:49;-1:-1:-1;10042:17:1;;;;;;:::i;:::-;;;;;;;;10038:771;;;10082:22;10075:29;;;;;10038:771;10141:8;:19;;;;:::i;:::-;10125:12;;;:::i;:::-;:35;10121:688;;10183:21;10176:28;;;;;10121:688;10241:8;:17;;;;:::i;:::-;10225:12;;;:::i;:::-;:33;10221:588;;10281:20;10274:27;;;;;10221:588;10343:8;:21;;;;:::i;:::-;10322:8;:17;;;;:::i;:::-;:42;;:77;;;;1169:9;10368:8;:17;;;;:::i;:::-;:31;10322:77;10318:491;;;10422:22;10415:29;;;;;10318:491;10465:8;:12;;;;:::i;:::-;10461:348;;10505:23;10498:30;;;;;10461:348;10549:17;;;;;;:::i;:::-;;;;;;;;10545:264;;;10589:22;10582:29;;;;;10545:264;10651:45;10658:8;:12;;;;:::i;:::-;10672:8;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;10672:8:1;-1:-1:-1;;;;;10672:21:1;;:23;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;10672:23:1;;;;:::i;:::-;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;;:::i;:::-;;;5:2;10672:23:1;;;;;;101:4:-1;10672:23:1;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;10672:23:1;;;;;;;;;10651:6;:45::i;:::-;10632:15;;;:::i;:::-;:64;10628:181;;10719:21;10712:28;;;;;10628:181;10778:20;10771:27;;;9776:1039;;;;:::o;8070:708::-;8151:22;8130:17;8136:10;8130:5;:17::i;:::-;:43;;;;;;;;;;8122:110;;;;-1:-1:-1;;;8122:110:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;8243:25;8271:21;;;:9;:21;;;8243:25;8271:21;8243:49;-1:-1:-1;8324:17:1;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;8324:17:1;-1:-1:-1;;;;;8310:31:1;:10;;;:::i;:::-;-1:-1:-1;;;;;8310:31:1;;:117;;;;8410:17;;;:::i;:::-;8345:4;;;;:::i;:::-;-1:-1:-1;;;;;8345:4:1;;;;;;;;:18;8364:17;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;8364:17:1;8383:23;8390:12;;;:::i;:::-;8404:1;8383:6;:23::i;:::-;8345:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;8345:62:1;;;;:::i;:::-;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;;:::i;:::-;;;5:2;8345:62:1;;;;;;101:4:-1;8345:62:1;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;8345:62:1;;;;;;;;;-1:-1:-1;;;;;8345:82:1;;8310:117;8302:177;;;;-1:-1:-1;;;8302:177:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;8510:4;8490:17;;;8510:4;8490:17;:24;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8529:6:1;;-1:-1:-1;;8524:204:1;8545:8;:16;;:23;;;:::i;:::-;;;8541:1;:27;8524:204;;;8589:8;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;8589:8:1;-1:-1:-1;;;;;8589:26:1;;8616:8;:16;;8633:1;8616:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;8616:19:1;8637:8;:15;;8653:1;8637:18;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;8657:8;:19;;8677:1;8657:22;;;:::i;:::-;;;;;;;;;;;;;;8681:8;:18;;8700:1;8681:21;;;:::i;:::-;;;;;;;;;;;;;;8704:8;:12;;;;:::i;:::-;8589:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;8589:128:1;;;;:::i;:::-;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;;:::i;:::-;;;5:2;-1:-1;;8570:3:1;;;;;-1:-1:-1;8524:204:1;;-1:-1:-1;8524:204:1;;;8743:28;8760:10;8743:28;;;;;;;11024:177;11107:10;;;:::i;:::-;-1:-1:-1;;;;;11098:96:1;-1:-1:-1;;;;;;;;;;;11119:10:1;11131:7;11140:49;11157:10;;;:::i;:::-;11169;11181:7;11140:16;:49::i;:::-;11098:96;;;;;;;;;;;;;;;;;11024:177;;:::o;2263:29:3:-;;;;;:::i;353:54:1:-;399:8;353:54;:::o;11489:215::-;11606:10;;;:::i;:::-;-1:-1:-1;;;;;11597:100:1;-1:-1:-1;;;;;;;;;;;11618:10:1;11630:7;11639:49;11656:10;;;:::i;:::-;11668;11680:7;11639:16;:49::i;:::-;11690:6;;11597:100;;;;;;;;;;;;;;;;;;;11489:215;;;;:::o;1290:47::-;1335:2;1290:47;:::o;16030:310::-;16092:5;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;16092:5:1;-1:-1:-1;;;;;16078:19:1;:10;;;:::i;:::-;-1:-1:-1;;;;;16078:19:1;;16070:68;;;;-1:-1:-1;;;16070:68:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;16156:17;;;:::i;:::-;:22;16148:83;;;;-1:-1:-1;;;16148:83:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;16257:1;;16241:13;:17;;:::i;:::-;;;;16288:13;;;:::i;:::-;16268:33;:17;:33;;:::i;:::-;;;;16311:8;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;16311:8:1;-1:-1:-1;;;;;16311:20:1;;:22;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;16311:22:1;;;;:::i;:::-;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;;:::i;:::-;;;5:2;16311:22:1;;;;16030:310::o;726:46::-;767:5;726:46;:::o;934:45::-;974:5;934:45;:::o;2961:29:3:-;;;;:::i;16658:521:1:-;16782:5;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;16782:5:1;-1:-1:-1;;;;;16768:19:1;:10;;;:::i;:::-;-1:-1:-1;;;;;16768:19:1;;16760:74;;;;-1:-1:-1;;;16760:74:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;16905:23;;16931:12;;;:::i;:::-;;;;;;-1:-1:-1;;;;;16931:12:1;16905:38;;17026:15;17011:12;;:30;;;;;:::i;:::-;;-1:-1:-1;;;;;17011:30:1;;;;;-1:-1:-1;;;;;17011:30:1;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;17139:15:1;17156;17123:49;;;;;;;;2102:1160;2274:1;;2253:8;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2253:8:1;-1:-1:-1;;;;;2245:31:1;;2237:95;;;;-1:-1:-1;;;2237:95:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;2364:5;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2364:5:1;-1:-1:-1;;;;;2350:19:1;:10;;;:::i;:::-;-1:-1:-1;;;;;2350:19:1;;2342:69;;;;-1:-1:-1;;;2342:69:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2429:23:1;;2421:87;;;;-1:-1:-1;;;2421:87:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2526:19:1;;2518:79;;;;-1:-1:-1;;;2518:79:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;652:1;2615:13;:34;;:72;;;;;767:5;2653:13;:34;;2615:72;2607:133;;;;-1:-1:-1;;;2607:133:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;881:1;2758:12;:32;;:68;;;;;974:5;2794:12;:32;;2758:68;2750:128;;;;-1:-1:-1;;;2750:128:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;399:8;2896:18;:44;;:92;;;;;530:9;2944:18;:44;;2896:92;2888:158;;;;-1:-1:-1;;;2888:158:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;3086:9;3057:8;:39;:8;:39;;:::i;:::-;;-1:-1:-1;;;;;3057:39:1;;;;;-1:-1:-1;;;;;3057:39:1;;;;;;:::i;:::-;;;;3127:5;3106:4;;:27;;;;;:::i;:::-;;-1:-1:-1;;;;;3106:27:1;;;;;-1:-1:-1;;;;;3106:27:1;;;;;;:::i;:::-;;;;3158:13;3143:12;:28;;;;:::i;:::-;;;;3195:12;3181:11;:26;;;;:::i;:::-;;;;3237:18;3217:17;:38;;;;:::i;:::-;;;;2102:1160;;;;;:::o;3223:33:3:-;;;;;:::i;3129:25::-;;;;:::i;3734:2307:1:-;3896:4;3978:17;;;:::i;:::-;3970:84;;;;-1:-1:-1;;;3970:84:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;4130:17;;;:::i;:::-;4072:4;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;4072:4:1;-1:-1:-1;;;;;4072:18:1;;4091:10;;;:::i;:::-;4103:23;4110:12;;;:::i;4103:23::-;4072:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;4072:55:1;;;;:::i;:::-;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;;:::i;:::-;;;5:2;4072:55:1;;;;;;101:4:-1;4072:55:1;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;4072:55:1;;;;;;;;;-1:-1:-1;;;;;4072:75:1;;4064:151;;;;-1:-1:-1;;;4064:151:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;4251:6;:13;4233:7;:14;:31;:70;;;;;4286:10;:17;4268:7;:14;:35;4233:70;:108;;;;;4325:9;:16;4307:7;:14;:34;4233:108;4225:189;;;;-1:-1:-1;;;4225:189:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;4432:7;:14;4424:76;;;;-1:-1:-1;;;4424:76:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;1335:2;4518:7;:14;:39;;4510:92;;;;-1:-1:-1;;;4510:92:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;4613:21;4637:17;:29;4655:10;;;:::i;:::-;-1:-1:-1;;;;;4637:29:1;-1:-1:-1;;;;;4637:29:1;;;;;;;;;;;;;;:::i;:::-;4613:53;-1:-1:-1;4680:21:1;;4676:450;;4715:42;4760:23;4766:16;4760:5;:23::i;:::-;4715:68;-1:-1:-1;4835:20:1;4803:28;:52;;;;;;;;;;4795:153;;;;-1:-1:-1;;;4795:153:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;5000:21;4968:28;:53;;;;;;;;;;4960:155;;;;-1:-1:-1;;;4960:155:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;4676:450;;5136:15;5154:33;5161:12;;;:::i;:::-;5175:11;;;:::i;5154:33::-;5136:51;;5197:13;5213:32;5220:10;5232:12;;;:::i;5213:32::-;5197:48;;5256:13;;:15;;;:::i;:::-;;;;;;-1:-1:-1;5256:15:1;;:::i;:::-;;;;5281:27;;:::i;:::-;5311:442;;;;;;;;5338:13;;;:::i;:::-;5311:442;;;;5375:10;;;:::i;:::-;-1:-1:-1;;;;;5311:442:1;;;;;5404:1;5311:442;;;;5428:7;5311:442;;;;5457:6;5311:442;;;;5489:10;5311:442;;;;5524:9;5311:442;;;;5559:10;5311:442;;;;5593:8;5311:442;;;;5625:1;5311:442;;;;5654:1;5311:442;;;;5683:1;5311:442;;;;5708:5;5311:442;;;;;;5737:5;5311:442;;;;;5281:472;;5792:11;5764:9;:25;5774:11;:14;;;5764:25;;;;;;;;;;;:39;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;5764:39:1;;;;;-1:-1:-1;;;;;5764:39:1;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5855:11:1;;-1:-1:-1;;;;5855:14:1;5813:17;:39;5831:11;:20;;;-1:-1:-1;;;;;5813:39:1;-1:-1:-1;;;;;5813:39:1;;;;;;;;;;;;:56;;;;:::i;:::-;;;;5885:118;5901:11;:14;;;5917:10;;;:::i;:::-;5929:7;5938:6;5946:10;5958:9;5969:10;5981:8;5991:11;5885:118;;;;;;;;;;;;;;;;;;;;;;;6020:11;:14;6013:21;;;;;;3734:2307;;;;;;;;:::o;6175:577::-;6255:23;6234:17;6240:10;6234:5;:17::i;:::-;:44;;;;;;;;;6226:125;;;;-1:-1:-1;;;6226:125:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;6361:25;6389:21;;;:9;:21;;;6361:25;6389:21;6361:49;;6420:8;6431:41;6438:15;;;:::i;:::-;6455:8;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;6455:8:1;-1:-1:-1;;;;;6455:14:1;;:16;;;;;;;;;;;;;;;;;;;;;;:::i;6431:41::-;6420:52;-1:-1:-1;6487:6:1;6482:190;6503:8;:16;;:23;;;:::i;:::-;;;6499:1;:27;6482:190;;;6547:114;6569:8;:16;;6586:1;6569:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;6569:19:1;6590:8;:15;;6606:1;6590:18;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;6610:8;:19;;6630:1;6610:22;;;:::i;:::-;;;;;;;;;;;;;;6547:114;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6634:8;:18;;6653:1;6634:21;;;:::i;:::-;;;;;;;;;;;;;;6547:114;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6657:3;6547:21;:114::i;:::-;6528:3;;6482:190;;;-1:-1:-1;6696:3:1;;6681:12;;;:18;;:::i;:::-;;;;6714:31;6729:10;6741:3;6714:31;;;;;;;;;;;;;;;;6175:577;;;:::o;1630:95::-;1672:53;;;;;;9476:152;9551:14;;:::i;:::-;9584:21;;;;:9;:21;;;;;-1:-1:-1;;;;;9584:37:1;;;;;;:30;;;;;:37;;;;;9577:44;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9577:44:1;;;;;;;;;;-1:-1:-1;9577:44:1;-1:-1:-1;9476:152:1;;;;;:::o;17362:621::-;17499:12;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;17499:12:1;-1:-1:-1;;;;;17485:26:1;:10;;;:::i;:::-;-1:-1:-1;;;;;17485:26:1;;:54;;;;-1:-1:-1;17537:1:1;17515:10;;;:::i;:::-;-1:-1:-1;;;;;17515:24:1;;;17485:54;17477:113;;;;-1:-1:-1;;;17477:113:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;17653:16;;;17672:5;;:::i;:::-;;;;;;-1:-1:-1;;;;;17672:5:1;17653:24;;17687:23;17713:12;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;17713:12:1;17687:38;;17791:12;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;17791:12:1;17783:5;;:20;;;;;:::i;:::-;;-1:-1:-1;;;;;17783:20:1;;;;;-1:-1:-1;;;;;17783:20:1;;;;;;:::i;:::-;;;;17872:1;17849:12;;:25;;;;;:::i;:::-;;-1:-1:-1;;;;;17849:25:1;;;;;-1:-1:-1;;;;;17849:25:1;;;;;;:::i;:::-;;;;17890;17899:8;17909:5;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;17909:5:1;17890:25;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;17946:15:1;17963:12;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;17963:12:1;17930:46;;;;;;;;2104:20:3;;;;;:::i;3047:29::-;;;;:::i;7299:567:1:-;7389:20;7368:17;7374:10;7368:5;:17::i;:::-;:41;;;;;;;;;7360:123;;;;-1:-1:-1;;;7360:123:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;7493:25;7521:21;;;:9;:21;;;7493:25;7521:21;7493:49;-1:-1:-1;7572:4:1;7552:17;;;:24;:17;:24;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7591:6:1;;-1:-1:-1;;7586:231:1;7607:8;:16;;:23;;;:::i;:::-;;;7603:1;:27;7586:231;;;7651:8;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;7651:8:1;-1:-1:-1;;;;;7651:27:1;;7685:8;:15;;7701:1;7685:18;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;7705:8;:16;;7722:1;7705:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;7705:19:1;7726:8;:15;;7742:1;7726:18;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;7746:8;:19;;7766:1;7746:22;;;:::i;:::-;;;;;;;;;;;;;;7770:8;:18;;7789:1;7770:21;;;:::i;:::-;;;;;;;;;;;;;;7793:8;:12;;;;:::i;:::-;7651:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;7651:155:1;;;;:::i;:::-;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;;:::i;:::-;;;5:2;7651:155:1;;;;;;;39:16:-1;36:1;17:17;2:54;101:4;7651:155:1;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;7651:155:1;;;;;;;;;-1:-1:-1;7632:3:1;;7586:231;;;;7831:28;7848:10;7831:28;;;;;;;18309:154;18362:4;18378:12;18422:9;;;:::i;:::-;18411:20;-1:-1:-1;;18309:154:1;;:::o;12879:1040::-;12970:6;13017:20;12996:17;13002:10;12996:5;:17::i;:::-;:41;;;;;;;;;12988:103;;;;-1:-1:-1;;;12988:103:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;13120:1;13109:7;:12;;;;13101:75;;;;-1:-1:-1;;;13101:75:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;13186:25;13214:21;;;:9;:21;;;13186:25;13214:21;-1:-1:-1;;;;;13271:24:1;;13245:23;13271:24;;;:17;;;:24;;13186:49;;-1:-1:-1;13271:24:1;13245:23;13271:24;13245:50;-1:-1:-1;13313:16:1;13245:50;13313:16;;:::i;:::-;;;;;;;;;;:25;13305:90;;;;-1:-1:-1;;;13305:90:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;13405:12;;13420:4;;;:::i;:::-;;;;;;-1:-1:-1;;;;;13420:4:1;-1:-1:-1;;;;;13420:18:1;;13439:5;13446:8;:19;;;;:::i;:::-;13420:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;13420:46:1;;;;:::i;:::-;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;;:::i;:::-;;;5:2;13420:46:1;;;;;;101:4:-1;13420:46:1;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13420:46:1;;;;;;;;;13405:61;-1:-1:-1;13481:12:1;;;13477:313;;13533:36;13540:8;:21;;;;:::i;:::-;13563:5;-1:-1:-1;;;;;13533:36:1;:6;:36::i;:::-;13509:60;:21;;;:60;;:::i;:::-;;;;13477:313;;;13590:7;:12;;13601:1;13590:12;13586:204;;;13638:32;13645:8;:17;;;;:::i;13638:32::-;13618:52;:17;;;:52;;:::i;13586:204::-;13691:7;:12;;13702:1;13691:12;13687:103;;;13743:36;13750:8;:21;;;;:::i;13743:36::-;13719:60;:21;;;:60;;:::i;:::-;;;;13687:103;13819:4;13800:7;13819:4;13800:7;:23;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13851:7:1;;-1:-1:-1;13833:7:1;;-1:-1:-1;13833:25:1;:7;:25;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13884:5:1;;-1:-1:-1;13868:7:1;;-1:-1:-1;13868:21:1;:7;:21;;:::i;:::-;;-1:-1:-1;;;;;13868:21:1;;;;;-1:-1:-1;;;;;13868:21:1;;;;;;:::i;:::-;-1:-1:-1;13907:5:1;;-1:-1:-1;;;;;12879:1040:1;;;;;;:::o;17989:162::-;18050:4;18075:5;;;18098:6;;;;18090:36;;;;-1:-1:-1;;;18090:36:1;;;;;;;;;;;;;;;;;:::i;:::-;;;18143:1;17989:162;-1:-1:-1;;;17989:162:1:o;18157:146::-;18218:4;18247:1;18242;:6;;18234:40;;;;-1:-1:-1;;;18234:40:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;18291:5:1;;;18157:146::o;6758:397::-;6899:8;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;6899:8:1;-1:-1:-1;;;;;6899:27:1;;6948:6;6956:5;6963:9;6974:4;6980:3;6937:47;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6937:47:1;;;6927:58;;;;;;6899:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;6899:87:1;;;;:::i;:::-;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;;:::i;:::-;;;5:2;6899:87:1;;;;;;101:4:-1;6899:87:1;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;6899:87:1;;;;;;;;;6898:88;6890:186;;;;-1:-1:-1;;;6890:186:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;7086:8;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;7086:8:1;-1:-1:-1;;;;;7086:25:1;;7112:6;7120:5;7127:9;7138:4;7144:3;7086:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;7086:62:1;;;;:::i;:::-;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;;:::i;:::-;;;5:2;7086:62:1;;;;;;101:4:-1;7086:62:1;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;7086:62:1;;;;;;;;101:18364;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;242:1;231:9;227:17;295:4;284:9;277:23;362:6;355:4;344:9;340:20;333:36;424:1;407:143;436:6;431:3;428:15;407:143;;;536:3;528:6;524:16;518:23;486:30;;;505:4;486:30;479:63;462:4;453:14;407:143;;;411:16;720:4;709:9;700:6;694:4;690:17;679:9;674:51;;;;;;;;;;;;;;;;;;;;;;;;;;0:821;;;101:18364:1:o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;184:2;180:1;169:9;165:17;158:29;252:2;241:9;237:2;226:9;221:34;;;;;;;;;;;;;;;;;;;;;;;;;;271:9;265:16;259:22;;521:1;504:100;533:4;528:3;525:13;504:100;;;598:1;577:19;;;570:30;557:4;548:14;504:100;;;508:16;0:607;;101:18364:1:o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;222:2;211:9;208:1;197:9;192:33;;;;;;;;;;;;;;;;;;;;;;;;;;241:9;235:16;491:1;540:30;;229:22;-1:-1;527:4;474:100;;101:18364:1;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;184:2;180:1;169:9;165:17;158:29;219:2;212:4;201:9;197:20;190:32;284:1;273:9;269:2;258:9;253:33;;;;;;;;;;;;;;;;;;;;;;;;;;530:1;579:30;;566:4;513:100;;101:18364:1;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;208:6;201:4;190:9;186:20;179:36;267:4;260;249:9;245:20;238:34;338:4;331;320:9;316:20;309:34;416:10;409:4;398:9;394:20;387:40;508:4;497:9;493:20;533:1;516:135;545:10;540:3;537:19;516:135;;;641:3;629:10;625:20;619:27;595:22;;;588:59;575:4;566:14;516:135;;;520:16;1050:4;1039:9;1026:10;1020:4;1016:21;1005:9;1000:55;;;;;;;;;;;;;;;;;;;;;;;;;;1100:9;1094:16;1209:4;1198:9;1194:20;1188:27;1450:16;1447:1;1436:9;1421:46;1535:9;1524;1497:25;1490:4;1479:9;1475:20;1470:75;;;;;;;1612:7;1639:9;1622:101;1659:10;1654:3;1651:19;1622:101;;;1714:4;1702:17;;1689:4;1680:14;1622:101;;;-1:-1;1881:10;;-1:-1;;;;;;101:18364:1:o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;222:2;211:9;208:1;197:9;192:33;;;;;;;;;;;;;;;;;;;;;;;;;;241:9;235:16;491:1;540:30;;229:22;-1:-1;527:4;474:100;;101:18364:1;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;184:2;180:1;169:9;165:17;158:29;252:2;241:9;237:2;226:9;221:34;;;;;;;;;;;;;;;;;;;;;;;;;;271:9;265:16;521:1;570:30;;259:22;-1:-1;557:4;504:100;;101:18364:1;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;222:2;211:9;208:1;197:9;192:33;;;;;;;;;;;;;;;;;;;;;;;;;;241:9;235:16;491:1;540:30;;229:22;-1:-1;527:4;474:100;;101:18364:1;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;208:6;201:4;190:9;186:20;179:36;267:4;260;249:9;245:20;238:34;338:4;331;320:9;316:20;309:34;416:10;409:4;398:9;394:20;387:40;508:4;497:9;493:20;533:1;516:135;545:10;540:3;537:19;516:135;;;641:3;629:10;625:20;619:27;595:22;;;588:59;575:4;566:14;516:135;;;520:16;1050:4;1039:9;1026:10;1020:4;1016:21;1005:9;1000:55;;;;;;;;;;;;;;;;;;;;;;;;;;1100:9;1094:16;1209:4;1198:9;1194:20;1188:27;1450:16;1447:1;1436:9;1421:46;1535:9;1524;1497:25;1490:4;1479:9;1475:20;1470:75;;;;;;;1612:7;1639:9;1622:101;1659:10;1654:3;1651:19;1622:101;;;1714:4;1702:17;;1689:4;1680:14;1622:101;;;-1:-1;1881:10;;-1:-1;;;;;;101:18364:1:o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;101:18364:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;101:18364:1;;;;;-1:-1:-1;;;;;101:18364:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;101:18364:1;;;-1:-1:-1;101:18364:1;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;101:18364:1;;;-1:-1:-1;101:18364:1;:::i;:::-;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;101:18364:1;;;-1:-1:-1;101:18364:1;:::i;:::-;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;101:18364:1;;;-1:-1:-1;101:18364:1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;222:2;211:9;208:1;197:9;192:33;;;;;;;;;;;;;;;;;;;;;;;;;;241:9;235:16;491:1;540:30;;229:22;-1:-1;527:4;474:100;;101:18364:1;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;101:18364:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;160:707;;277:3;270:4;262:6;258:17;254:27;244:2;;295:1;292;285:12;;:::i;:::-;;;244:2;332:6;319:20;354:80;369:64;426:6;369:64;;;354:80;;;345:89;;451:5;476:6;469:5;462:21;506:4;498:6;494:17;484:27;;528:4;523:3;519:14;512:21;;581:6;628:3;620:4;612:6;608:17;603:3;599:27;596:36;593:2;;;645:1;642;635:12;;:::i;:::-;;;593:2;670:1;655:206;680:6;677:1;674:13;655:206;;;738:3;760:37;793:3;781:10;760:37;;;748:50;;-1:-1;821:4;812:14;;;;840;;;;;702:1;695:9;655:206;;;659:14;237:630;;;;;;;;891:693;;1013:3;1006:4;998:6;994:17;990:27;980:2;;1031:1;1028;1021:12;;:::i;:::-;;;980:2;1068:6;1055:20;1090:85;1105:69;1167:6;1105:69;;1090:85;1203:21;;;1247:4;1235:17;;;;1081:94;;-1:-1;1260:14;;1235:17;1355:1;1340:238;1365:6;1362:1;1359:13;1340:238;;;1448:3;1435:17;1427:6;1423:30;1472:42;1510:3;1498:10;1472:42;;;1460:55;;-1:-1;1538:4;1529:14;;;;1557;;;;;1387:1;1380:9;1340:238;;1609:696;;1732:3;1725:4;1717:6;1713:17;1709:27;1699:2;;1750:1;1747;1740:12;;:::i;:::-;;;1699:2;1787:6;1774:20;1809:86;1824:70;1887:6;1824:70;;1809:86;1923:21;;;1967:4;1955:17;;;;1800:95;;-1:-1;1980:14;;1955:17;2075:1;2060:239;2085:6;2082:1;2079:13;2060:239;;;2168:3;2155:17;2147:6;2143:30;2192:43;2231:3;2219:10;2192:43;;;2180:56;;-1:-1;2259:4;2250:14;;;;2278;;;;;2107:1;2100:9;2060:239;;2331:707;;2448:3;2441:4;2433:6;2429:17;2425:27;2415:2;;2466:1;2463;2456:12;;:::i;:::-;;;2415:2;2503:6;2490:20;2525:80;2540:64;2597:6;2540:64;;2525:80;2516:89;;2622:5;2647:6;2640:5;2633:21;2677:4;2669:6;2665:17;2655:27;;2699:4;2694:3;2690:14;2683:21;;2752:6;2799:3;2791:4;2783:6;2779:17;2774:3;2770:27;2767:36;2764:2;;;2816:1;2813;2806:12;;:::i;:::-;;;2764:2;2841:1;2826:206;2851:6;2848:1;2845:13;2826:206;;;2909:3;2931:37;2964:3;2952:10;2931:37;;;2919:50;;-1:-1;2992:4;2983:14;;;;3011;;;;;2873:1;2866:9;2826:206;;3046:128;;3127:6;3121:13;3112:22;;3139:30;3163:5;3139:30;;3181:130;3248:20;;3273:33;3248:20;3273:33;;3318:134;;3402:6;3396:13;3387:22;;3414:33;3441:5;3414:33;;3460:432;;3557:3;3550:4;3542:6;3538:17;3534:27;3524:2;;3575:1;3572;3565:12;;:::i;:::-;;;3524:2;3612:6;3599:20;3634:60;3649:44;3686:6;3649:44;;3634:60;3625:69;;3714:6;3707:5;3700:21;3750:4;3742:6;3738:17;3783:4;3776:5;3772:16;3818:3;3809:6;3804:3;3800:16;3797:25;3794:2;;;3835:1;3832;3825:12;;:::i;:::-;;;3794:2;3845:41;3879:6;3874:3;3869;3845:41;;;3517:375;;;;;;;;3901:442;;4013:3;4006:4;3998:6;3994:17;3990:27;3980:2;;4031:1;4028;4021:12;;:::i;:::-;;;3980:2;4061:6;4055:13;4083:64;4098:48;4139:6;4098:48;;4083:64;4074:73;;4167:6;4160:5;4153:21;4203:4;4195:6;4191:17;4236:4;4229:5;4225:16;4271:3;4262:6;4257:3;4253:16;4250:25;4247:2;;;4288:1;4285;4278:12;;:::i;:::-;;;4247:2;4298:39;4330:6;4325:3;4320;4298:39;;4366:337;;;4481:3;4474:4;4466:6;4462:17;4458:27;4448:2;;4499:1;4496;4489:12;;:::i;:::-;;;4448:2;-1:-1;4519:20;;-1:-1;;;;;4548:30;;4545:2;;;4591:1;4588;4581:12;;:::i;:::-;;;4545:2;4625:4;4617:6;4613:17;4601:29;;4676:3;4668:4;4660:6;4656:17;4646:8;4642:32;4639:41;4636:2;;;4693:1;4690;4683:12;;:::i;:::-;;;4636:2;4441:262;;;;;;5883:126;5948:20;;5973:31;5948:20;5973:31;;6016:132;;6099:6;6093:13;6084:22;;6111:32;6137:5;6111:32;;6155:241;;6259:2;6247:9;6238:7;6234:23;6230:32;6227:2;;;6275:1;6272;6265:12;;:::i;:::-;;;6227:2;6310:1;6327:53;6372:7;6352:9;6327:53;;;6317:63;6221:175;-1:-1;;;;6221:175;6403:743;;;;;;6575:3;6563:9;6554:7;6550:23;6546:33;6543:2;;;6592:1;6589;6582:12;;:::i;:::-;;;6543:2;6627:1;6644:53;6689:7;6669:9;6644:53;;;6634:63;;6606:97;6734:2;6752:53;6797:7;6788:6;6777:9;6773:22;6752:53;;;6742:63;;6713:98;6842:2;6860:53;6905:7;6896:6;6885:9;6881:22;6860:53;;;6850:63;;6821:98;6950:2;6968:53;7013:7;7004:6;6993:9;6989:22;6968:53;;;6958:63;;6929:98;7058:3;7077:53;7122:7;7113:6;7102:9;7098:22;7077:53;;;7067:63;;7037:99;6537:609;;;;;;;;;7153:1415;;;;;;7446:3;7434:9;7425:7;7421:23;7417:33;7414:2;;;7463:1;7460;7453:12;;:::i;:::-;;;7414:2;7498:31;;-1:-1;;;;;7538:30;;7535:2;;;7581:1;7578;7571:12;;:::i;:::-;;;7535:2;7601:78;7671:7;7662:6;7651:9;7647:22;7601:78;;;7591:88;;7477:208;7744:2;7733:9;7729:18;7716:32;-1:-1;;;;;7760:6;7757:30;7754:2;;;7800:1;7797;7790:12;;:::i;:::-;;;7754:2;7820:78;7890:7;7881:6;7870:9;7866:22;7820:78;;;7810:88;;7695:209;7963:2;7952:9;7948:18;7935:32;-1:-1;;;;;7979:6;7976:30;7973:2;;;8019:1;8016;8009:12;;:::i;:::-;;;7973:2;8039:84;8115:7;8106:6;8095:9;8091:22;8039:84;;;8029:94;;7914:215;8188:2;8177:9;8173:18;8160:32;-1:-1;;;;;8204:6;8201:30;8198:2;;;8244:1;8241;8234:12;;:::i;:::-;;;8198:2;8264:83;8339:7;8330:6;8319:9;8315:22;8264:83;;;8254:93;;8139:214;8412:3;8401:9;8397:19;8384:33;-1:-1;;;;;8429:6;8426:30;8423:2;;;8469:1;8466;8459:12;;:::i;:::-;;;8423:2;8489:63;8544:7;8535:6;8524:9;8520:22;8489:63;;8575:257;;8687:2;8675:9;8666:7;8662:23;8658:32;8655:2;;;8703:1;8700;8693:12;;:::i;:::-;;;8655:2;8738:1;8755:61;8808:7;8788:9;8755:61;;8839:263;;8954:2;8942:9;8933:7;8929:23;8925:32;8922:2;;;8970:1;8967;8960:12;;:::i;:::-;;;8922:2;9005:1;9022:64;9078:7;9058:9;9022:64;;9109:360;;9233:2;9221:9;9212:7;9208:23;9204:32;9201:2;;;9249:1;9246;9239:12;;:::i;:::-;;;9201:2;9294:9;9284:24;-1:-1;;;;;9320:6;9317:30;9314:2;;;9360:1;9357;9350:12;;:::i;:::-;;;9314:2;9380:73;9445:7;9436:6;9425:9;9421:22;9380:73;;9476:241;;9580:2;9568:9;9559:7;9555:23;9551:32;9548:2;;;9596:1;9593;9586:12;;:::i;:::-;;;9548:2;9631:1;9648:53;9693:7;9673:9;9648:53;;9994:366;;;10115:2;10103:9;10094:7;10090:23;10086:32;10083:2;;;10131:1;10128;10121:12;;:::i;:::-;;;10083:2;10166:1;10183:53;10228:7;10208:9;10183:53;;;10173:63;;10145:97;10273:2;10291:53;10336:7;10327:6;10316:9;10312:22;10291:53;;;10281:63;;10252:98;10077:283;;;;;;10367:362;;;10486:2;10474:9;10465:7;10461:23;10457:32;10454:2;;;10502:1;10499;10492:12;;:::i;:::-;;;10454:2;10537:1;10554:53;10599:7;10579:9;10554:53;;;10544:63;;10516:97;10644:2;10662:51;10705:7;10696:6;10685:9;10681:22;10662:51;;10736:613;;;;;10892:2;10880:9;10871:7;10867:23;10863:32;10860:2;;;10908:1;10905;10898:12;;:::i;:::-;;;10860:2;10943:1;10960:53;11005:7;10985:9;10960:53;;;10950:63;;10922:97;11050:2;11068:51;11111:7;11102:6;11091:9;11087:22;11068:51;;;11058:61;;11029:96;11184:2;11173:9;11169:18;11156:32;-1:-1;;;;;11200:6;11197:30;11194:2;;;11240:1;11237;11230:12;;:::i;:::-;;;11194:2;11268:65;11325:7;11316:6;11305:9;11301:22;11268:65;;;10854:495;;;;-1:-1;11258:75;-1:-1;;;;10854:495;11356:735;;;;;;11524:3;11512:9;11503:7;11499:23;11495:33;11492:2;;;11541:1;11538;11531:12;;:::i;:::-;;;11492:2;11576:1;11593:53;11638:7;11618:9;11593:53;;;11583:63;;11555:97;11683:2;11701:51;11744:7;11735:6;11724:9;11720:22;11701:51;;;11691:61;;11662:96;11789:2;11807:51;11850:7;11841:6;11830:9;11826:22;11807:51;;12098:261;;12212:2;12200:9;12191:7;12187:23;12183:32;12180:2;;;12228:1;12225;12218:12;;:::i;:::-;;;12180:2;12263:1;12280:63;12335:7;12315:9;12280:63;;12367:173;;12454:46;12496:3;12488:6;12454:46;;;-1:-1;;12529:4;12520:14;;12447:93;12549:177;;12660:60;12716:3;12708:6;12660:60;;12925:173;;13012:46;13054:3;13046:6;13012:46;;13106:142;13197:45;13236:5;13197:45;;;13192:3;13185:58;13179:69;;;13255:103;13328:24;13346:5;13328:24;;13516:690;;13661:54;13709:5;13661:54;;;13728:86;13807:6;13802:3;13728:86;;;13721:93;;13835:56;13885:5;13835:56;;;13911:7;13939:1;13924:260;13949:6;13946:1;13943:13;13924:260;;;14016:6;14010:13;14037:63;14096:3;14081:13;14037:63;;;14030:70;;14117:60;14170:6;14117:60;;;14107:70;-1:-1;;13971:1;13964:9;13924:260;;;-1:-1;14197:3;;13640:566;-1:-1;;;;;13640:566;14241:888;;14396:59;14449:5;14396:59;;;14468:91;14552:6;14547:3;14468:91;;;14461:98;;14582:3;14624:4;14616:6;14612:17;14607:3;14603:27;14651:61;14706:5;14651:61;;;14732:7;14760:1;14745:345;14770:6;14767:1;14764:13;14745:345;;;14832:9;14826:4;14822:20;14817:3;14810:33;14877:6;14871:13;14899:74;14968:4;14953:13;14899:74;;;14891:82;;14990:65;15048:6;14990:65;;;15078:4;15069:14;;;;;14980:75;-1:-1;;14792:1;14785:9;14745:345;;;-1:-1;15103:4;;14375:754;-1:-1;;;;;;;14375:754;15166:896;;15323:60;15377:5;15323:60;;;15396:92;15481:6;15476:3;15396:92;;;15389:99;;15511:3;15553:4;15545:6;15541:17;15536:3;15532:27;15580:62;15636:5;15580:62;;;15662:7;15690:1;15675:348;15700:6;15697:1;15694:13;15675:348;;;15762:9;15756:4;15752:20;15747:3;15740:33;15807:6;15801:13;15829:76;15900:4;15885:13;15829:76;;;15821:84;;15922:66;15981:6;15922:66;;;16011:4;16002:14;;;;;15912:76;-1:-1;;15722:1;15715:9;15675:348;;16101:690;;16246:54;16294:5;16246:54;;;16313:86;16392:6;16387:3;16313:86;;;16306:93;;16420:56;16470:5;16420:56;;;16496:7;16524:1;16509:260;16534:6;16531:1;16528:13;16509:260;;;16601:6;16595:13;16622:63;16681:3;16666:13;16622:63;;;16615:70;;16702:60;16755:6;16702:60;;;16692:70;-1:-1;;16556:1;16549:9;16509:260;;16799:94;16866:21;16881:5;16866:21;;17011:113;17094:24;17112:5;17094:24;;17131:152;17232:45;17252:24;17270:5;17252:24;;;17232:45;;17290:343;;17400:38;17432:5;17400:38;;;17450:70;17513:6;17508:3;17450:70;;;17443:77;;17525:52;17570:6;17565:3;17558:4;17551:5;17547:16;17525:52;;;17598:29;17620:6;17598:29;;;17589:39;;;;17380:253;-1:-1;;;17380:253;17985:818;;18102:5;18096:12;;:::i;:::-;18136:1;18121:17;;18144:247;;;;18402:1;18397:400;;;;18114:683;;18144:247;18222:4;18218:1;18207:9;18203:17;18199:28;18241:70;18304:6;18299:3;18241:70;;;-1:-1;;18330:25;;18318:38;;18234:77;-1:-1;;18379:4;18370:14;;;-1:-1;18144:247;;18397:400;18466:1;18455:9;18451:17;18482:70;18545:6;18540:3;18482:70;;;18475:77;;18574:37;18605:5;18574:37;;;18627:1;18635:130;18649:6;18646:1;18643:13;18635:130;;;18714:7;18708:14;;:::i;:::-;18695:11;;;18688:35;18755:1;18742:15;;;;;18671:4;18664:12;18635:130;;;18779:11;;;-1:-1;;;18114:683;;18072:731;;;;;;18811:170;18916:59;18969:5;18916:59;;19173:158;19272:53;19319:5;19272:53;;19363:300;;19479:71;19543:6;19538:3;19479:71;;;19472:78;;19562:43;19598:6;19593:3;19586:5;19562:43;;;19627:29;19649:6;19627:29;;20722:823;;20841:5;20835:12;;:::i;:::-;20875:1;20860:17;;20883:248;;;;21142:1;21137:402;;;;20853:686;;21137:402;21206:1;21195:9;21191:17;21222:71;21286:6;21281:3;21222:71;;;21215:78;;21315:38;21347:5;21315:38;;;21369:1;21377:130;21391:6;21388:1;21385:13;21377:130;;;21456:7;21450:14;;:::i;:::-;21437:11;;;21430:35;21497:1;21484:15;;;;;21413:4;21406:12;21377:130;;21554:387;;21714:67;21778:2;21773:3;21714:67;;;-1:-1;;;;;;;;;;;21794:55;;-1:-1;;;21878:2;21869:12;;21862:42;21932:2;21923:12;;21700:241;-1:-1;;21700:241;21950:413;;22128:85;22210:2;22205:3;22128:85;;;22246:34;22226:55;;-1:-1;;;22310:2;22301:12;;22294:32;22354:2;22345:12;;22114:249;-1:-1;;22114:249;22372:388;;22532:67;22596:2;22591:3;22532:67;;;22632:34;22612:55;;-1:-1;;;22696:2;22687:12;;22680:43;22751:2;22742:12;;22518:242;-1:-1;;22518:242;22769:379;;22929:67;22993:2;22988:3;22929:67;;;23029:34;23009:55;;-1:-1;;;23093:2;23084:12;;23077:34;23139:2;23130:12;;22915:233;-1:-1;;22915:233;23157:459;;23317:67;23381:2;23376:3;23317:67;;;23417:34;23397:55;;23486:34;23481:2;23472:12;;23465:56;-1:-1;;;23550:2;23541:12;;23534:45;23607:2;23598:12;;23303:313;-1:-1;;23303:313;23625:380;;23785:67;23849:2;23844:3;23785:67;;;-1:-1;;;;;;;;;;;23865:55;;-1:-1;;;23949:2;23940:12;;23933:35;23996:2;23987:12;;23771:234;-1:-1;;23771:234;24014:388;;24174:67;24238:2;24233:3;24174:67;;;-1:-1;;;;;;;;;;;24254:55;;-1:-1;;;24338:2;24329:12;;24322:43;24393:2;24384:12;;24160:242;-1:-1;;24160:242;24411:379;;24571:67;24635:2;24630:3;24571:67;;;-1:-1;;;;;;;;;;;24651:55;;-1:-1;;;24735:2;24726:12;;24719:34;24781:2;24772:12;;24557:233;-1:-1;;24557:233;24799:386;;24959:67;25023:2;25018:3;24959:67;;;25059:34;25039:55;;-1:-1;;;25123:2;25114:12;;25107:41;25176:2;25167:12;;24945:240;-1:-1;;24945:240;25194:398;;25372:84;25454:1;25449:3;25372:84;;;-1:-1;;;25469:87;;25584:1;25575:11;;25358:234;-1:-1;;25358:234;25601:391;;25761:67;25825:2;25820:3;25761:67;;;-1:-1;;;;;;;;;;;25841:55;;-1:-1;;;25925:2;25916:12;;25909:46;25983:2;25974:12;;25747:245;-1:-1;;25747:245;26001:386;;26161:67;26225:2;26220:3;26161:67;;;-1:-1;;;;;;;;;;;26241:55;;-1:-1;;;26325:2;26316:12;;26309:41;26378:2;26369:12;;26147:240;-1:-1;;26147:240;26396:389;;26556:67;26620:2;26615:3;26556:67;;;-1:-1;;;;;;;;;;;26636:55;;-1:-1;;;26720:2;26711:12;;26704:44;26776:2;26767:12;;26542:243;-1:-1;;26542:243;26794:389;;26954:67;27018:2;27013:3;26954:67;;;-1:-1;;;;;;;;;;;27034:55;;-1:-1;;;27118:2;27109:12;;27102:44;27174:2;27165:12;;26940:243;-1:-1;;26940:243;27192:390;;27352:67;27416:2;27411:3;27352:67;;;-1:-1;;;;;;;;;;;27432:55;;-1:-1;;;27516:2;27507:12;;27500:45;27573:2;27564:12;;27338:244;-1:-1;;27338:244;27591:443;;27751:67;27815:2;27810:3;27751:67;;;27851:34;27831:55;;27920:34;27915:2;27906:12;;27899:56;-1:-1;;;27984:2;27975:12;;27968:29;28025:2;28016:12;;27737:297;-1:-1;;27737:297;28043:384;;28203:67;28267:2;28262:3;28203:67;;;28303:34;28283:55;;-1:-1;;;28367:2;28358:12;;28351:39;28418:2;28409:12;;28189:238;-1:-1;;28189:238;28436:384;;28596:67;28660:2;28655:3;28596:67;;;-1:-1;;;;;;;;;;;28676:55;;-1:-1;;;28760:2;28751:12;;28744:39;28811:2;28802:12;;28582:238;-1:-1;;28582:238;28829:442;;28989:67;29053:2;29048:3;28989:67;;;29089:34;29069:55;;29158:34;29153:2;29144:12;;29137:56;-1:-1;;;29222:2;29213:12;;29206:28;29262:2;29253:12;;28975:296;-1:-1;;28975:296;29280:374;;29440:67;29504:2;29499:3;29440:67;;;29540:34;29520:55;;-1:-1;;;29604:2;29595:12;;29588:29;29645:2;29636:12;;29426:228;-1:-1;;29426:228;29663:401;;29823:67;29887:2;29882:3;29823:67;;;-1:-1;;;;;;;;;;;29903:55;;29992:34;29987:2;29978:12;;29971:56;30055:2;30046:12;;29809:255;-1:-1;;29809:255;30073:442;;30233:67;30297:2;30292:3;30233:67;;;30333:34;30313:55;;30402:34;30397:2;30388:12;;30381:56;-1:-1;;;30466:2;30457:12;;30450:28;30506:2;30497:12;;30219:296;-1:-1;;30219:296;30524:317;;30684:67;30748:2;30743:3;30684:67;;;-1:-1;;;30764:40;;30832:2;30823:12;;30670:171;-1:-1;;30670:171;30850:477;;31028:85;31110:2;31105:3;31028:85;;;31146:34;31126:55;;31215:34;31210:2;31201:12;;31194:56;-1:-1;;;31279:2;31270:12;;31263:27;31318:2;31309:12;;31014:313;-1:-1;;31014:313;31336:385;;31496:67;31560:2;31555:3;31496:67;;;31596:34;31576:55;;-1:-1;;;31660:2;31651:12;;31644:40;31712:2;31703:12;;31482:239;-1:-1;;31482:239;31730:381;;31890:67;31954:2;31949:3;31890:67;;;31990:34;31970:55;;-1:-1;;;32054:2;32045:12;;32038:36;32102:2;32093:12;;31876:235;-1:-1;;31876:235;32120:383;;32280:67;32344:2;32339:3;32280:67;;;32380:34;32360:55;;-1:-1;;;32444:2;32435:12;;32428:38;32494:2;32485:12;;32266:237;-1:-1;;32266:237;32512:384;;32672:67;32736:2;32731:3;32672:67;;;-1:-1;;;;;;;;;;;32752:55;;-1:-1;;;32836:2;32827:12;;32820:39;32887:2;32878:12;;32658:238;-1:-1;;32658:238;32905:384;;33065:67;33129:2;33124:3;33065:67;;;33165:34;33145:55;;-1:-1;;;33229:2;33220:12;;33213:39;33280:2;33271:12;;33051:238;-1:-1;;33051:238;33298:377;;33458:67;33522:2;33517:3;33458:67;;;33558:34;33538:55;;-1:-1;;;33622:2;33613:12;;33606:32;33666:2;33657:12;;33444:231;-1:-1;;33444:231;33684:463;;33844:67;33908:2;33903:3;33844:67;;;-1:-1;;;;;;;;;;;33924:55;;-1:-1;;;;;;;;;;;34008:2;33999:12;;33992:56;-1:-1;;;34077:2;34068:12;;34061:49;34138:2;34129:12;;33830:317;-1:-1;;33830:317;34156:462;;34316:67;34380:2;34375:3;34316:67;;;-1:-1;;;;;;;;;;;34396:55;;-1:-1;;;;;;;;;;;34480:2;34471:12;;34464:56;-1:-1;;;34549:2;34540:12;;34533:48;34609:2;34600:12;;34302:316;-1:-1;;34302:316;34627:262;;34787:66;34851:1;34846:3;34787:66;;34898:373;;35058:67;35122:2;35117:3;35058:67;;;35158:34;35138:55;;-1:-1;;;35222:2;35213:12;;35206:28;35262:2;35253:12;;35044:227;-1:-1;;35044:227;35280:400;;35440:67;35504:2;35499:3;35440:67;;;35540:34;35520:55;;35609:33;35604:2;35595:12;;35588:55;35671:2;35662:12;;35426:254;-1:-1;;35426:254;35689:391;;35849:67;35913:2;35908:3;35849:67;;;35949:34;35929:55;;-1:-1;;;36013:2;36004:12;;35997:46;36071:2;36062:12;;35835:245;-1:-1;;35835:245;36089:385;;36249:67;36313:2;36308:3;36249:67;;;-1:-1;;;;;;;;;;;36329:55;;-1:-1;;;36413:2;36404:12;;36397:40;36465:2;36456:12;;36235:239;-1:-1;;36235:239;36483:378;;36643:67;36707:2;36702:3;36643:67;;;36743:34;36723:55;;-1:-1;;;36807:2;36798:12;;36791:33;36852:2;36843:12;;36629:232;-1:-1;;36629:232;36870:385;;37030:67;37094:2;37089:3;37030:67;;;-1:-1;;;;;;;;;;;37110:55;;-1:-1;;;37194:2;37185:12;;37178:40;37246:2;37237:12;;37016:239;-1:-1;;37016:239;37264:321;;37424:67;37488:2;37483:3;37424:67;;;-1:-1;;;37504:44;;37576:2;37567:12;;37410:175;-1:-1;;37410:175;37694:626;37837:4;37828:14;;37917:5;37907:23;37936:57;37982:3;37964:12;37936:57;;;37857:142;38075:4;38068:5;38064:16;38058:23;38087:59;38140:4;38135:3;38131:14;38117:12;38087:59;;;38009:143;38226:4;38219:5;38215:16;38209:23;38238:61;38293:4;38288:3;38284:14;38270:12;38238:61;;38557:97;38626:22;38642:5;38626:22;;38775:124;38857:36;38887:5;38857:36;;38906:100;38977:23;38994:5;38977:23;;39013:372;;39212:148;39356:3;39212:148;;39392:650;;39647:148;39791:3;39647:148;;;39640:155;;39806:75;39877:3;39868:6;39806:75;;;39903:2;39898:3;39894:12;39887:19;;39917:75;39988:3;39979:6;39917:75;;;-1:-1;40014:2;40005:12;;39628:414;-1:-1;;39628:414;40049:372;;40248:148;40392:3;40248:148;;40428:213;40546:2;40531:18;;40560:71;40535:9;40604:6;40560:71;;40648:340;40802:2;40787:18;;40816:79;40791:9;40868:6;40816:79;;;40906:72;40974:2;40963:9;40959:18;40950:6;40906:72;;40995:324;41141:2;41126:18;;41155:71;41130:9;41199:6;41155:71;;;41237:72;41305:2;41294:9;41290:18;41281:6;41237:72;;41326:324;41472:2;41457:18;;41486:71;41461:9;41530:6;41486:71;;41657:831;41925:3;41910:19;;41940:71;41914:9;41984:6;41940:71;;;42022:72;42090:2;42079:9;42075:18;42066:6;42022:72;;;42142:9;42136:4;42132:20;42127:2;42116:9;42112:18;42105:48;42167:78;42240:4;42231:6;42167:78;;;42159:86;;42293:9;42287:4;42283:20;42278:2;42267:9;42263:18;42256:48;42318:76;42389:4;42380:6;42318:76;;;42310:84;;42405:73;42473:3;42462:9;42458:19;42449:6;42405:73;;;41896:592;;;;;;;;;42495:819;42757:3;42742:19;;42772:71;42746:9;42816:6;42772:71;;;42854:72;42922:2;42911:9;42907:18;42898:6;42854:72;;;42974:9;42968:4;42964:20;42959:2;42948:9;42944:18;42937:48;42999:75;43069:4;43060:6;42999:75;;;42991:83;;43122:9;43116:4;43112:20;43107:2;43096:9;43092:18;43085:48;43147:73;43215:4;43206:6;43147:73;;43321:1183;43745:3;43760:47;;;43730:19;;43821:108;43730:19;43915:6;43821:108;;;43813:116;;43977:9;43971:4;43967:20;43962:2;43951:9;43947:18;43940:48;44002:108;44105:4;44096:6;44002:108;;;43994:116;;44158:9;44152:4;44148:20;44143:2;44132:9;44128:18;44121:48;44183:120;44298:4;44289:6;44183:120;;;44175:128;;44351:9;44345:4;44341:20;44336:2;44325:9;44321:18;44314:48;44376:118;44489:4;44480:6;44376:118;;44511:213;44629:2;44614:18;;44643:71;44618:9;44687:6;44643:71;;44731:547;44933:3;44918:19;;44948:71;44922:9;44992:6;44948:71;;;45030:72;45098:2;45087:9;45083:18;45074:6;45030:72;;;45113;45181:2;45170:9;45166:18;45157:6;45113:72;;;45196;45264:2;45253:9;45249:18;45240:6;45196:72;;45285:427;45455:2;45440:18;;45469:71;45444:9;45513:6;45469:71;;;45551:72;45619:2;45608:9;45604:18;45595:6;45551:72;;;45634:68;45698:2;45687:9;45683:18;45674:6;45634:68;;45719:539;45917:3;45902:19;;45932:71;45906:9;45976:6;45932:71;;;46014:68;46078:2;46067:9;46063:18;46054:6;46014:68;;;46093:72;46161:2;46150:9;46146:18;46137:6;46093:72;;;46176;46244:2;46233:9;46229:18;46220:6;46176:72;;46265:257;46405:2;46390:18;;46419:93;46394:9;46485:6;46419:93;;46801:245;46935:2;46920:18;;46949:87;46924:9;47009:6;46949:87;;47053:293;47187:2;47201:47;;;47172:18;;47262:74;47172:18;47322:6;47262:74;;47353:407;47544:2;47558:47;;;47529:18;;47619:131;47529:18;47619:131;;47767:407;47958:2;47972:47;;;47943:18;;48033:131;47943:18;48033:131;;48181:407;48372:2;48386:47;;;48357:18;;48447:131;48357:18;48447:131;;48595:407;48786:2;48800:47;;;48771:18;;48861:131;48771:18;48861:131;;49009:407;49200:2;49214:47;;;49185:18;;49275:131;49185:18;49275:131;;49423:407;49614:2;49628:47;;;49599:18;;49689:131;49599:18;49689:131;;49837:407;50028:2;50042:47;;;50013:18;;50103:131;50013:18;50103:131;;50251:407;50442:2;50456:47;;;50427:18;;50517:131;50427:18;50517:131;;50665:407;50856:2;50870:47;;;50841:18;;50931:131;50841:18;50931:131;;51079:407;51270:2;51284:47;;;51255:18;;51345:131;51255:18;51345:131;;51493:407;51684:2;51698:47;;;51669:18;;51759:131;51669:18;51759:131;;51907:407;52098:2;52112:47;;;52083:18;;52173:131;52083:18;52173:131;;52321:407;52512:2;52526:47;;;52497:18;;52587:131;52497:18;52587:131;;52735:407;52926:2;52940:47;;;52911:18;;53001:131;52911:18;53001:131;;53149:407;53340:2;53354:47;;;53325:18;;53415:131;53325:18;53415:131;;53563:407;53754:2;53768:47;;;53739:18;;53829:131;53739:18;53829:131;;53977:407;54168:2;54182:47;;;54153:18;;54243:131;54153:18;54243:131;;54391:407;54582:2;54596:47;;;54567:18;;54657:131;54567:18;54657:131;;54805:407;54996:2;55010:47;;;54981:18;;55071:131;54981:18;55071:131;;55219:407;55410:2;55424:47;;;55395:18;;55485:131;55395:18;55485:131;;55633:407;55824:2;55838:47;;;55809:18;;55899:131;55809:18;55899:131;;56047:407;56238:2;56252:47;;;56223:18;;56313:131;56223:18;56313:131;;56461:407;56652:2;56666:47;;;56637:18;;56727:131;56637:18;56727:131;;56875:407;57066:2;57080:47;;;57051:18;;57141:131;57051:18;57141:131;;57289:407;57480:2;57494:47;;;57465:18;;57555:131;57465:18;57555:131;;57703:407;57894:2;57908:47;;;57879:18;;57969:131;57879:18;57969:131;;58117:407;58308:2;58322:47;;;58293:18;;58383:131;58293:18;58383:131;;58531:407;58722:2;58736:47;;;58707:18;;58797:131;58707:18;58797:131;;58945:407;59136:2;59150:47;;;59121:18;;59211:131;59121:18;59211:131;;59359:407;59550:2;59564:47;;;59535:18;;59625:131;59535:18;59625:131;;59773:407;59964:2;59978:47;;;59949:18;;60039:131;59949:18;60039:131;;60187:407;60378:2;60392:47;;;60363:18;;60453:131;60363:18;60453:131;;60601:407;60792:2;60806:47;;;60777:18;;60867:131;60777:18;60867:131;;61015:407;61206:2;61220:47;;;61191:18;;61281:131;61191:18;61281:131;;61429:407;61620:2;61634:47;;;61605:18;;61695:131;61605:18;61695:131;;61843:407;62034:2;62048:47;;;62019:18;;62109:131;62019:18;62109:131;;62257:313;62425:2;62410:18;;62439:121;62414:9;62533:6;62439:121;;62797:1847;63389:3;63374:19;;63404:71;63378:9;63448:6;63404:71;;;63486:80;63562:2;63551:9;63547:18;63538:6;63486:80;;;63614:9;63608:4;63604:20;63599:2;63588:9;63584:18;63577:48;63639:108;63742:4;63733:6;63639:108;;;63631:116;;63795:9;63789:4;63785:20;63780:2;63769:9;63765:18;63758:48;63820:108;63923:4;63914:6;63820:108;;;63812:116;;63977:9;63971:4;63967:20;63961:3;63950:9;63946:19;63939:49;64002:120;64117:4;64108:6;64002:120;;;63994:128;;64171:9;64165:4;64161:20;64155:3;64144:9;64140:19;64133:49;64196:118;64309:4;64300:6;64196:118;;;64188:126;;64325:73;64393:3;64382:9;64378:19;64369:6;64325:73;;;64409;64477:3;64466:9;64462:19;64453:6;64409:73;;;64531:9;64525:4;64521:20;64515:3;64504:9;64500:19;64493:49;64556:78;64629:4;64620:6;64556:78;;;64548:86;63360:1284;-1:-1;;;;;;;;;;;63360:1284;64651:1195;65009:3;64994:19;;65024:71;64998:9;65068:6;65024:71;;;65106:72;65174:2;65163:9;65159:18;65150:6;65106:72;;;65189;65257:2;65246:9;65242:18;65233:6;65189:72;;;65272;65340:2;65329:9;65325:18;65316:6;65272:72;;;65355:73;65423:3;65412:9;65408:19;65399:6;65355:73;;;65439;65507:3;65496:9;65492:19;65483:6;65439:73;;;65523;65591:3;65580:9;65576:19;65567:6;65523:73;;;65607;65675:3;65664:9;65660:19;65651:6;65607:73;;;65691:67;65753:3;65742:9;65738:19;65729:6;65691:67;;;65769;65831:3;65820:9;65816:19;65807:6;65769:67;;65853:324;65999:2;65984:18;;66013:71;65988:9;66057:6;66013:71;;66184:645;66411:3;66396:19;;66426:71;66400:9;66470:6;66426:71;;;66508:68;66572:2;66561:9;66557:18;66548:6;66508:68;;;66587:71;66654:2;66643:9;66639:18;66630:6;66587:71;;;66706:9;66700:4;66696:20;66691:2;66680:9;66676:18;66669:48;66731:88;66814:4;66805:6;66797;66731:88;;;66723:96;66382:447;-1:-1;;;;;;;66382:447;66836:731;67106:3;67091:19;;67121:71;67095:9;67165:6;67121:71;;;67203:68;67267:2;67256:9;67252:18;67243:6;67203:68;;;67282:71;67349:2;67338:9;67334:18;67325:6;67282:71;;;67401:9;67395:4;67391:20;67386:2;67375:9;67371:18;67364:48;67426:131;67552:4;67426:131;;67574:256;;67636:2;67630:9;67620:19;;67674:4;67666:6;67662:17;67773:6;67761:10;67758:22;-1:-1;;;;;67725:10;67722:34;67719:62;67716:2;;;67794:1;67791;67784:12;;:::i;:::-;;;67716:2;67810;67803:22;67614:216;;-1:-1;67614:216;67837:304;;-1:-1;;;;;67988:6;67985:30;67982:2;;;68028:1;68025;68018:12;;:::i;:::-;;;67982:2;-1:-1;68063:4;68051:17;;;68116:15;;67919:222;69092:317;;-1:-1;;;;;69223:6;69220:30;69217:2;;;69263:1;69260;69253:12;;:::i;:::-;;;69217:2;-1:-1;69394:4;69330;69307:17;;;;-1:-1;;69303:33;69384:15;;69154:255;70398:151;70522:4;70513:14;;70470:79;71041:157;;71135:14;;;71108:3;;71177:4;;71164:18;71156:26;71094:104;-1:-1;;71094:104;71370:137;;71479:5;71473:12;71463:22;71444:63;-1:-1;;71444:63;72935:178;73053:19;;;73102:4;73093:14;;73046:67;74513:91;;74575:24;74593:5;74575:24;;74611:85;74677:13;74670:21;;74653:43;74782:142;74862:5;74868:51;74862:5;74868:51;;74931:121;-1:-1;;;;;74993:54;;74976:76;75138:81;75209:4;75198:16;;75181:38;75226:104;-1:-1;;;;;75287:38;;75270:60;75337:129;;75424:37;75455:5;75473:165;;75574:59;75627:5;75574:59;;76103:142;;76198:42;76234:5;76198:42;;76495:106;;76573:23;76590:5;76573:23;;76609:145;76690:6;76685:3;76680;76667:30;-1:-1;76746:1;76728:16;;76721:27;76660:94;76763:268;76828:1;76835:101;76849:6;76846:1;76843:13;76835:101;;;76925:1;76920:3;76916:11;76910:18;76897:11;;;76890:39;76871:2;76864:10;76835:101;;;76951:6;76948:1;76945:13;76942:2;;;-1:-1;;77016:1;76998:16;;76991:27;76812:219;77120:97;77208:2;77188:14;-1:-1;;77184:28;;77168:49;77225:109;77312:1;77305:5;77302:12;77292:2;;77318:9;77341:117;77410:24;77428:5;77410:24;;;77403:5;77400:35;77390:2;;77449:1;77446;77439:12;;:::i;77465:111::-;77531:21;77546:5;77531:21;;77583:117;77652:24;77670:5;77652:24;;77831:113;77898:22;77914:5;77898:22;;77951:115;78019:23;78036:5;78019:23;", + "source": "pragma solidity ^0.5.16;\npragma experimental ABIEncoderV2;\n\nimport \"./GovernorBravoInterfaces.sol\";\n\ncontract GovernorBravoDelegate is GovernorBravoDelegateStorageV1, GovernorBravoEvents {\n\n /// @notice The name of this contract\n string public constant name = \"Compound Governor Bravo\";\n\n /// @notice The minimum setable proposal threshold\n uint public constant MIN_PROPOSAL_THRESHOLD = 50000e18; // 50,000 Comp\n\n /// @notice The maximum setable proposal threshold\n uint public constant MAX_PROPOSAL_THRESHOLD = 100000e18; //100,000 Comp\n\n /// @notice The minimum setable voting period\n uint public constant MIN_VOTING_PERIOD = 1; // About 15 seconds\n\n /// @notice The max setable voting period\n uint public constant MAX_VOTING_PERIOD = 80640; // About 2 weeks\n\n /// @notice The min setable voting delay\n uint public constant MIN_VOTING_DELAY = 1;\n\n /// @notice The max setable voting delay\n uint public constant MAX_VOTING_DELAY = 40320; // About 1 week\n\n /// @notice The number of votes in support of a proposal required in order for a quorum to be reached and for a vote to succeed\n uint public constant quorumVotes = 400000e18; // 400,000 = 4% of Comp\n\n /// @notice The maximum number of actions that can be included in a proposal\n uint public constant proposalMaxOperations = 10; // 10 actions\n\n /// @notice The EIP-712 typehash for the contract's domain\n bytes32 public constant DOMAIN_TYPEHASH = keccak256(\"EIP712Domain(string name,uint256 chainId,address verifyingContract)\");\n\n /// @notice The EIP-712 typehash for the ballot struct used by the contract\n bytes32 public constant BALLOT_TYPEHASH = keccak256(\"Ballot(uint256 proposalId,uint8 support)\");\n\n /**\n * @notice Used to initialize the contract during delegator contructor\n * @param timelock_ The address of the Timelock\n * @param comp_ The address of the COMP token\n * @param votingPeriod_ The initial voting period\n * @param votingDelay_ The initial voting delay\n * @param proposalThreshold_ The initial proposal threshold\n */\n function initialize(address timelock_, address comp_, uint votingPeriod_, uint votingDelay_, uint proposalThreshold_) public {\n require(address(timelock) == address(0), \"GovernorBravo::initialize: can only initialize once\");\n require(msg.sender == admin, \"GovernorBravo::initialize: admin only\");\n require(timelock_ != address(0), \"GovernorBravo::initialize: invalid timelock address\");\n require(comp_ != address(0), \"GovernorBravo::initialize: invalid comp address\");\n require(votingPeriod_ >= MIN_VOTING_PERIOD && votingPeriod_ <= MAX_VOTING_PERIOD, \"GovernorBravo::initialize: invalid voting period\");\n require(votingDelay_ >= MIN_VOTING_DELAY && votingDelay_ <= MAX_VOTING_DELAY, \"GovernorBravo::initialize: invalid voting delay\");\n require(proposalThreshold_ >= MIN_PROPOSAL_THRESHOLD && proposalThreshold_ <= MAX_PROPOSAL_THRESHOLD, \"GovernorBravo::initialize: invalid proposal threshold\");\n\n timelock = TimelockInterface(timelock_);\n comp = CompInterface(comp_);\n votingPeriod = votingPeriod_;\n votingDelay = votingDelay_;\n proposalThreshold = proposalThreshold_;\n }\n\n /**\n * @notice Function used to propose a new proposal. Sender must have delegates above the proposal threshold\n * @param targets Target addresses for proposal calls\n * @param values Eth values for proposal calls\n * @param signatures Function signatures for proposal calls\n * @param calldatas Calldatas for proposal calls\n * @param description String description of the proposal\n * @return Proposal id of new proposal\n */\n function propose(address[] memory targets, uint[] memory values, string[] memory signatures, bytes[] memory calldatas, string memory description) public returns (uint) {\n // Reject proposals before initiating as Governor\n require(initialProposalId != 0, \"GovernorBravo::propose: Governor Bravo not active\");\n require(comp.getPriorVotes(msg.sender, sub256(block.number, 1)) > proposalThreshold, \"GovernorBravo::propose: proposer votes below proposal threshold\");\n require(targets.length == values.length && targets.length == signatures.length && targets.length == calldatas.length, \"GovernorBravo::propose: proposal function information arity mismatch\");\n require(targets.length != 0, \"GovernorBravo::propose: must provide actions\");\n require(targets.length <= proposalMaxOperations, \"GovernorBravo::propose: too many actions\");\n\n uint latestProposalId = latestProposalIds[msg.sender];\n if (latestProposalId != 0) {\n ProposalState proposersLatestProposalState = state(latestProposalId);\n require(proposersLatestProposalState != ProposalState.Active, \"GovernorBravo::propose: one live proposal per proposer, found an already active proposal\");\n require(proposersLatestProposalState != ProposalState.Pending, \"GovernorBravo::propose: one live proposal per proposer, found an already pending proposal\");\n }\n\n uint startBlock = add256(block.number, votingDelay);\n uint endBlock = add256(startBlock, votingPeriod);\n\n proposalCount++;\n Proposal memory newProposal = Proposal({\n id: proposalCount,\n proposer: msg.sender,\n eta: 0,\n targets: targets,\n values: values,\n signatures: signatures,\n calldatas: calldatas,\n startBlock: startBlock,\n endBlock: endBlock,\n forVotes: 0,\n againstVotes: 0,\n abstainVotes: 0,\n canceled: false,\n executed: false\n });\n\n proposals[newProposal.id] = newProposal;\n latestProposalIds[newProposal.proposer] = newProposal.id;\n\n emit ProposalCreated(newProposal.id, msg.sender, targets, values, signatures, calldatas, startBlock, endBlock, description);\n return newProposal.id;\n }\n\n /**\n * @notice Queues a proposal of state succeeded\n * @param proposalId The id of the proposal to queue\n */\n function queue(uint proposalId) external {\n require(state(proposalId) == ProposalState.Succeeded, \"GovernorBravo::queue: proposal can only be queued if it is succeeded\");\n Proposal storage proposal = proposals[proposalId];\n uint eta = add256(block.timestamp, timelock.delay());\n for (uint i = 0; i < proposal.targets.length; i++) {\n queueOrRevertInternal(proposal.targets[i], proposal.values[i], proposal.signatures[i], proposal.calldatas[i], eta);\n }\n proposal.eta = eta;\n emit ProposalQueued(proposalId, eta);\n }\n\n function queueOrRevertInternal(address target, uint value, string memory signature, bytes memory data, uint eta) internal {\n require(!timelock.queuedTransactions(keccak256(abi.encode(target, value, signature, data, eta))), \"GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta\");\n timelock.queueTransaction(target, value, signature, data, eta);\n }\n\n /**\n * @notice Executes a queued proposal if eta has passed\n * @param proposalId The id of the proposal to execute\n */\n function execute(uint proposalId) external payable {\n require(state(proposalId) == ProposalState.Queued, \"GovernorBravo::execute: proposal can only be executed if it is queued\");\n Proposal storage proposal = proposals[proposalId];\n proposal.executed = true;\n for (uint i = 0; i < proposal.targets.length; i++) {\n timelock.executeTransaction.value(proposal.values[i])(proposal.targets[i], proposal.values[i], proposal.signatures[i], proposal.calldatas[i], proposal.eta);\n }\n emit ProposalExecuted(proposalId);\n }\n\n /**\n * @notice Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold\n * @param proposalId The id of the proposal to cancel\n */\n function cancel(uint proposalId) external {\n require(state(proposalId) != ProposalState.Executed, \"GovernorBravo::cancel: cannot cancel executed proposal\");\n\n Proposal storage proposal = proposals[proposalId];\n require(msg.sender == proposal.proposer || comp.getPriorVotes(proposal.proposer, sub256(block.number, 1)) < proposalThreshold, \"GovernorBravo::cancel: proposer above threshold\");\n\n proposal.canceled = true;\n for (uint i = 0; i < proposal.targets.length; i++) {\n timelock.cancelTransaction(proposal.targets[i], proposal.values[i], proposal.signatures[i], proposal.calldatas[i], proposal.eta);\n }\n\n emit ProposalCanceled(proposalId);\n }\n\n /**\n * @notice Gets actions of a proposal\n * @param proposalId the id of the proposal\n * @return Targets, values, signatures, and calldatas of the proposal actions\n */\n function getActions(uint proposalId) external view returns (address[] memory targets, uint[] memory values, string[] memory signatures, bytes[] memory calldatas) {\n Proposal storage p = proposals[proposalId];\n return (p.targets, p.values, p.signatures, p.calldatas);\n }\n\n /**\n * @notice Gets the receipt for a voter on a given proposal\n * @param proposalId the id of proposal\n * @param voter The address of the voter\n * @return The voting receipt\n */\n function getReceipt(uint proposalId, address voter) external view returns (Receipt memory) {\n return proposals[proposalId].receipts[voter];\n }\n\n /**\n * @notice Gets the state of a proposal\n * @param proposalId The id of the proposal\n * @return Proposal state\n */\n function state(uint proposalId) public view returns (ProposalState) {\n require(proposalCount >= proposalId && proposalId > initialProposalId, \"GovernorBravo::state: invalid proposal id\");\n Proposal storage proposal = proposals[proposalId];\n if (proposal.canceled) {\n return ProposalState.Canceled;\n } else if (block.number <= proposal.startBlock) {\n return ProposalState.Pending;\n } else if (block.number <= proposal.endBlock) {\n return ProposalState.Active;\n } else if (proposal.forVotes <= proposal.againstVotes || proposal.forVotes < quorumVotes) {\n return ProposalState.Defeated;\n } else if (proposal.eta == 0) {\n return ProposalState.Succeeded;\n } else if (proposal.executed) {\n return ProposalState.Executed;\n } else if (block.timestamp >= add256(proposal.eta, timelock.GRACE_PERIOD())) {\n return ProposalState.Expired;\n } else {\n return ProposalState.Queued;\n }\n }\n\n /**\n * @notice Cast a vote for a proposal\n * @param proposalId The id of the proposal to vote on\n * @param support The support value for the vote. 0=against, 1=for, 2=abstain\n */\n function castVote(uint proposalId, uint8 support) external {\n emit VoteCast(msg.sender, proposalId, support, castVoteInternal(msg.sender, proposalId, support), \"\");\n }\n\n /**\n * @notice Cast a vote for a proposal with a reason\n * @param proposalId The id of the proposal to vote on\n * @param support The support value for the vote. 0=against, 1=for, 2=abstain\n * @param reason The reason given for the vote by the voter\n */\n function castVoteWithReason(uint proposalId, uint8 support, string calldata reason) external {\n emit VoteCast(msg.sender, proposalId, support, castVoteInternal(msg.sender, proposalId, support), reason);\n }\n\n /**\n * @notice Cast a vote for a proposal by signature\n * @dev External function that accepts EIP-712 signatures for voting on proposals.\n */\n function castVoteBySig(uint proposalId, uint8 support, uint8 v, bytes32 r, bytes32 s) external {\n bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainIdInternal(), address(this)));\n bytes32 structHash = keccak256(abi.encode(BALLOT_TYPEHASH, proposalId, support));\n bytes32 digest = keccak256(abi.encodePacked(\"\\x19\\x01\", domainSeparator, structHash));\n address signatory = ecrecover(digest, v, r, s);\n require(signatory != address(0), \"GovernorBravo::castVoteBySig: invalid signature\");\n emit VoteCast(signatory, proposalId, support, castVoteInternal(signatory, proposalId, support), \"\");\n }\n\n /**\n * @notice Internal function that caries out voting logic\n * @param voter The voter that is casting their vote\n * @param proposalId The id of the proposal to vote on\n * @param support The support value for the vote. 0=against, 1=for, 2=abstain\n * @return The number of votes cast\n */\n function castVoteInternal(address voter, uint proposalId, uint8 support) internal returns (uint96) {\n require(state(proposalId) == ProposalState.Active, \"GovernorBravo::castVoteInternal: voting is closed\");\n require(support <= 2, \"GovernorBravo::castVoteInternal: invalid vote type\");\n Proposal storage proposal = proposals[proposalId];\n Receipt storage receipt = proposal.receipts[voter];\n require(receipt.hasVoted == false, \"GovernorBravo::castVoteInternal: voter already voted\");\n uint96 votes = comp.getPriorVotes(voter, proposal.startBlock);\n\n if (support == 0) {\n proposal.againstVotes = add256(proposal.againstVotes, votes);\n } else if (support == 1) {\n proposal.forVotes = add256(proposal.forVotes, votes);\n } else if (support == 2) {\n proposal.abstainVotes = add256(proposal.abstainVotes, votes);\n }\n\n receipt.hasVoted = true;\n receipt.support = support;\n receipt.votes = votes;\n\n return votes;\n }\n\n /**\n * @notice Admin function for setting the voting delay\n * @param newVotingDelay new voting delay, in blocks\n */\n function _setVotingDelay(uint newVotingDelay) external {\n require(msg.sender == admin, \"GovernorBravo::_setVotingDelay: admin only\");\n require(newVotingDelay >= MIN_VOTING_DELAY && newVotingDelay <= MAX_VOTING_DELAY, \"GovernorBravo::_setVotingDelay: invalid voting delay\");\n uint oldVotingDelay = votingDelay;\n votingDelay = newVotingDelay;\n\n emit VotingDelaySet(oldVotingDelay,votingDelay);\n }\n\n /**\n * @notice Admin function for setting the voting period\n * @param newVotingPeriod new voting period, in blocks\n */\n function _setVotingPeriod(uint newVotingPeriod) external {\n require(msg.sender == admin, \"GovernorBravo::_setVotingPeriod: admin only\");\n require(newVotingPeriod >= MIN_VOTING_PERIOD && newVotingPeriod <= MAX_VOTING_PERIOD, \"GovernorBravo::_setVotingPeriod: invalid voting period\");\n uint oldVotingPeriod = votingPeriod;\n votingPeriod = newVotingPeriod;\n\n emit VotingPeriodSet(oldVotingPeriod, votingPeriod);\n }\n\n /**\n * @notice Admin function for setting the proposal threshold\n * @dev newProposalThreshold must be greater than the hardcoded min\n * @param newProposalThreshold new proposal threshold\n */\n function _setProposalThreshold(uint newProposalThreshold) external {\n require(msg.sender == admin, \"GovernorBravo::_setProposalThreshold: admin only\");\n require(newProposalThreshold >= MIN_PROPOSAL_THRESHOLD && newProposalThreshold <= MAX_PROPOSAL_THRESHOLD, \"GovernorBravo::_setProposalThreshold: invalid proposal threshold\");\n uint oldProposalThreshold = proposalThreshold;\n proposalThreshold = newProposalThreshold;\n\n emit ProposalThresholdSet(oldProposalThreshold, proposalThreshold);\n }\n\n /**\n * @notice Initiate the GovernorBravo contract\n * @dev Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count\n */\n function _initiate() external {\n require(msg.sender == admin, \"GovernorBravo::_initiate: admin only\");\n require(initialProposalId == 0, \"GovernorBravo::_initiate: can only initiate once\");\n proposalCount = 1;\n initialProposalId = proposalCount;\n timelock.acceptAdmin();\n }\n\n /**\n * @notice Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\n * @dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\n * @param newPendingAdmin New pending admin.\n */\n function _setPendingAdmin(address newPendingAdmin) external {\n // Check caller = admin\n require(msg.sender == admin, \"GovernorBravo:_setPendingAdmin: admin only\");\n\n // Save current value, if any, for inclusion in log\n address oldPendingAdmin = pendingAdmin;\n\n // Store pendingAdmin with value newPendingAdmin\n pendingAdmin = newPendingAdmin;\n\n // Emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin)\n emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin);\n }\n\n /**\n * @notice Accepts transfer of admin rights. msg.sender must be pendingAdmin\n * @dev Admin function for pending admin to accept role and update admin\n */\n function _acceptAdmin() external {\n // Check caller is pendingAdmin and pendingAdmin ≠address(0)\n require(msg.sender == pendingAdmin && msg.sender != address(0), \"GovernorBravo:_acceptAdmin: pending admin only\");\n\n // Save current values for inclusion in log\n address oldAdmin = admin;\n address oldPendingAdmin = pendingAdmin;\n\n // Store admin with value pendingAdmin\n admin = pendingAdmin;\n\n // Clear the pending value\n pendingAdmin = address(0);\n\n emit NewAdmin(oldAdmin, admin);\n emit NewPendingAdmin(oldPendingAdmin, pendingAdmin);\n }\n\n function add256(uint256 a, uint256 b) internal pure returns (uint) {\n uint c = a + b;\n require(c >= a, \"addition overflow\");\n return c;\n }\n\n function sub256(uint256 a, uint256 b) internal pure returns (uint) {\n require(b <= a, \"subtraction underflow\");\n return a - b;\n }\n\n function getChainIdInternal() internal pure returns (uint) {\n uint chainId;\n assembly { chainId := chainid() }\n return chainId;\n }\n}", + "sourcePath": "/Users/janliphardt/Documents/GitHub/optimism/omgx_examples/compound-simple/contracts/GovernorBravoDelegate.sol", + "ast": { + "absolutePath": "project:/contracts/GovernorBravoDelegate.sol", + "exportedSymbols": { + "GovernorBravoDelegate": [ + 2267 + ] + }, + "id": 2268, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 959, + "literals": [ + "solidity", + "^", + "0.5", + ".16" + ], + "nodeType": "PragmaDirective", + "src": "0:24:1" + }, + { + "id": 960, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "25:33:1" + }, + { + "absolutePath": "project:/contracts/GovernorBravoInterfaces.sol", + "file": "./GovernorBravoInterfaces.sol", + "id": 961, + "nodeType": "ImportDirective", + "scope": 2268, + "sourceUnit": 2637, + "src": "60:39:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 962, + "name": "GovernorBravoDelegateStorageV1", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2562, + "src": "135:30:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorBravoDelegateStorageV1_$2562", + "typeString": "contract GovernorBravoDelegateStorageV1" + } + }, + "id": 963, + "nodeType": "InheritanceSpecifier", + "src": "135:30:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 964, + "name": "GovernorBravoEvents", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2477, + "src": "167:19:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorBravoEvents_$2477", + "typeString": "contract GovernorBravoEvents" + } + }, + "id": 965, + "nodeType": "InheritanceSpecifier", + "src": "167:19:1" + } + ], + "contractDependencies": [ + 2477, + 2484, + 2562 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2267, + "linearizedBaseContracts": [ + 2267, + 2477, + 2562, + 2484 + ], + "name": "GovernorBravoDelegate", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 968, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 2267, + "src": "236:55:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 966, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "236:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "436f6d706f756e6420476f7665726e6f7220427261766f", + "id": 967, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "266:25:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3d9e905142ff365fb68ce863f26a44f5583cf7ec11bcde450555f50b7e1b5614", + "typeString": "literal_string \"Compound Governor Bravo\"" + }, + "value": "Compound Governor Bravo" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 971, + "name": "MIN_PROPOSAL_THRESHOLD", + "nodeType": "VariableDeclaration", + "scope": 2267, + "src": "353:54:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 969, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "353:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3530303030653138", + "id": 970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "399:8:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_50000000000000000000000_by_1", + "typeString": "int_const 50000000000000000000000" + }, + "value": "50000e18" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 974, + "name": "MAX_PROPOSAL_THRESHOLD", + "nodeType": "VariableDeclaration", + "scope": 2267, + "src": "484:55:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 972, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "484:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "313030303030653138", + "id": 973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "530:9:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000_by_1", + "typeString": "int_const 100000000000000000000000" + }, + "value": "100000e18" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 977, + "name": "MIN_VOTING_PERIOD", + "nodeType": "VariableDeclaration", + "scope": 2267, + "src": "611:42:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 975, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "611:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "652:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 980, + "name": "MAX_VOTING_PERIOD", + "nodeType": "VariableDeclaration", + "scope": 2267, + "src": "726:46:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 978, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "726:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3830363430", + "id": 979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "767:5:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_80640_by_1", + "typeString": "int_const 80640" + }, + "value": "80640" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 983, + "name": "MIN_VOTING_DELAY", + "nodeType": "VariableDeclaration", + "scope": 2267, + "src": "841:41:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 981, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "841:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "881:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 986, + "name": "MAX_VOTING_DELAY", + "nodeType": "VariableDeclaration", + "scope": 2267, + "src": "934:45:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 984, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "934:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3430333230", + "id": 985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "974:5:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_40320_by_1", + "typeString": "int_const 40320" + }, + "value": "40320" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 989, + "name": "quorumVotes", + "nodeType": "VariableDeclaration", + "scope": 2267, + "src": "1134:44:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 987, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1134:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "343030303030653138", + "id": 988, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1169:9:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_400000000000000000000000_by_1", + "typeString": "int_const 400000000000000000000000" + }, + "value": "400000e18" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 992, + "name": "proposalMaxOperations", + "nodeType": "VariableDeclaration", + "scope": 2267, + "src": "1290:47:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 990, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1290:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3130", + "id": 991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1335:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 997, + "name": "DOMAIN_TYPEHASH", + "nodeType": "VariableDeclaration", + "scope": 2267, + "src": "1421:122:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 993, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1421:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1473:69:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866", + "typeString": "literal_string \"EIP712Domain(string name,uint256 chainId,address verifyingContract)\"" + }, + "value": "EIP712Domain(string name,uint256 chainId,address verifyingContract)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866", + "typeString": "literal_string \"EIP712Domain(string name,uint256 chainId,address verifyingContract)\"" + } + ], + "id": 994, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3349, + "src": "1463:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1463:80:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 1002, + "name": "BALLOT_TYPEHASH", + "nodeType": "VariableDeclaration", + "scope": 2267, + "src": "1630:95:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 998, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1630:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "42616c6c6f742875696e743235362070726f706f73616c49642c75696e743820737570706f727429", + "id": 1000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1682:42:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f", + "typeString": "literal_string \"Ballot(uint256 proposalId,uint8 support)\"" + }, + "value": "Ballot(uint256 proposalId,uint8 support)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f", + "typeString": "literal_string \"Ballot(uint256 proposalId,uint8 support)\"" + } + ], + "id": 999, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3349, + "src": "1672:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1001, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1672:53:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 1109, + "nodeType": "Block", + "src": "2227:1035:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1017, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "2253:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + } + ], + "id": 1016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2245:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2245:17:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2274:1:1", + "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": 1019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2266:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2266:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2245:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a696e697469616c697a653a2063616e206f6e6c7920696e697469616c697a65206f6e6365", + "id": 1023, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2278:53:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_151f6261f1c5890955ee36f5491405733a50f8dbfd3ed20f67657ca07cf1bd97", + "typeString": "literal_string \"GovernorBravo::initialize: can only initialize once\"" + }, + "value": "GovernorBravo::initialize: can only initialize once" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_151f6261f1c5890955ee36f5491405733a50f8dbfd3ed20f67657ca07cf1bd97", + "typeString": "literal_string \"GovernorBravo::initialize: can only initialize once\"" + } + ], + "id": 1015, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "2237:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2237:95:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1025, + "nodeType": "ExpressionStatement", + "src": "2237:95:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1027, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "2350:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2350:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1029, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2479, + "src": "2364:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2350:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a696e697469616c697a653a2061646d696e206f6e6c79", + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2371:39:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e47288757825adad4754037a004a97a318622f53744b99fe46d86485d9a8b20", + "typeString": "literal_string \"GovernorBravo::initialize: admin only\"" + }, + "value": "GovernorBravo::initialize: admin only" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6e47288757825adad4754037a004a97a318622f53744b99fe46d86485d9a8b20", + "typeString": "literal_string \"GovernorBravo::initialize: admin only\"" + } + ], + "id": 1026, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "2342:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2342:69:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1033, + "nodeType": "ExpressionStatement", + "src": "2342:69:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1035, + "name": "timelock_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1004, + "src": "2429:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2450:1:1", + "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": 1036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2442:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2442:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2429:23:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c69642074696d656c6f636b2061646472657373", + "id": 1040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2454:53:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_21e23966aafb704889545eb5cd83af6490f12bdafb7ee5c7f4405649e923a2c9", + "typeString": "literal_string \"GovernorBravo::initialize: invalid timelock address\"" + }, + "value": "GovernorBravo::initialize: invalid timelock address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_21e23966aafb704889545eb5cd83af6490f12bdafb7ee5c7f4405649e923a2c9", + "typeString": "literal_string \"GovernorBravo::initialize: invalid timelock address\"" + } + ], + "id": 1034, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "2421:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2421:87:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1042, + "nodeType": "ExpressionStatement", + "src": "2421:87:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1044, + "name": "comp_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1006, + "src": "2526:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2543:1:1", + "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": 1045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2535:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2535:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2526:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c696420636f6d702061646472657373", + "id": 1049, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2547:49:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a53e09c70c138684f35438d4b624aff691fb02a7561cdbba2e712fd62109d12b", + "typeString": "literal_string \"GovernorBravo::initialize: invalid comp address\"" + }, + "value": "GovernorBravo::initialize: invalid comp address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a53e09c70c138684f35438d4b624aff691fb02a7561cdbba2e712fd62109d12b", + "typeString": "literal_string \"GovernorBravo::initialize: invalid comp address\"" + } + ], + "id": 1043, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "2518:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2518:79:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1051, + "nodeType": "ExpressionStatement", + "src": "2518:79:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1053, + "name": "votingPeriod_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1008, + "src": "2615:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1054, + "name": "MIN_VOTING_PERIOD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 977, + "src": "2632:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2615:34:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1056, + "name": "votingPeriod_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1008, + "src": "2653:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 1057, + "name": "MAX_VOTING_PERIOD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 980, + "src": "2670:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2653:34:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2615:72:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c696420766f74696e6720706572696f64", + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2689:50:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e9e5615425b0cd9c2cebf179c241e8f17014c8af68e810515d55661f48622fdd", + "typeString": "literal_string \"GovernorBravo::initialize: invalid voting period\"" + }, + "value": "GovernorBravo::initialize: invalid voting period" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e9e5615425b0cd9c2cebf179c241e8f17014c8af68e810515d55661f48622fdd", + "typeString": "literal_string \"GovernorBravo::initialize: invalid voting period\"" + } + ], + "id": 1052, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "2607:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2607:133:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1062, + "nodeType": "ExpressionStatement", + "src": "2607:133:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1064, + "name": "votingDelay_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1010, + "src": "2758:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1065, + "name": "MIN_VOTING_DELAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 983, + "src": "2774:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2758:32:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1067, + "name": "votingDelay_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1010, + "src": "2794:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 1068, + "name": "MAX_VOTING_DELAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "2810:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2794:32:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2758:68:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c696420766f74696e672064656c6179", + "id": 1071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2828:49:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_63a531af56d655db3f73e61eec02c446a787a3af7d8ddcb2a0b9674a780913f1", + "typeString": "literal_string \"GovernorBravo::initialize: invalid voting delay\"" + }, + "value": "GovernorBravo::initialize: invalid voting delay" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_63a531af56d655db3f73e61eec02c446a787a3af7d8ddcb2a0b9674a780913f1", + "typeString": "literal_string \"GovernorBravo::initialize: invalid voting delay\"" + } + ], + "id": 1063, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "2750:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2750:128:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1073, + "nodeType": "ExpressionStatement", + "src": "2750:128:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1075, + "name": "proposalThreshold_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1012, + "src": "2896:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1076, + "name": "MIN_PROPOSAL_THRESHOLD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 971, + "src": "2918:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2896:44:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1078, + "name": "proposalThreshold_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1012, + "src": "2944:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 1079, + "name": "MAX_PROPOSAL_THRESHOLD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 974, + "src": "2966:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2944:44:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2896:92:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c69642070726f706f73616c207468726573686f6c64", + "id": 1082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2990:55:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_59c58ede7ed2bbd6490c4678c3aaaf17f6c50b4ac911824783dceb923ac6e8dc", + "typeString": "literal_string \"GovernorBravo::initialize: invalid proposal threshold\"" + }, + "value": "GovernorBravo::initialize: invalid proposal threshold" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_59c58ede7ed2bbd6490c4678c3aaaf17f6c50b4ac911824783dceb923ac6e8dc", + "typeString": "literal_string \"GovernorBravo::initialize: invalid proposal threshold\"" + } + ], + "id": 1074, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "2888:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2888:158:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1084, + "nodeType": "ExpressionStatement", + "src": "2888:158:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1085, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "3057:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1087, + "name": "timelock_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1004, + "src": "3086:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1086, + "name": "TimelockInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2626, + "src": "3068:17:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_TimelockInterface_$2626_$", + "typeString": "type(contract TimelockInterface)" + } + }, + "id": 1088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3068:28:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + } + }, + "src": "3057:39:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + } + }, + "id": 1090, + "nodeType": "ExpressionStatement", + "src": "3057:39:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1091, + "name": "comp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2500, + "src": "3106:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CompInterface_$2636", + "typeString": "contract CompInterface" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1093, + "name": "comp_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1006, + "src": "3127:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1092, + "name": "CompInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2636, + "src": "3113:13:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_CompInterface_$2636_$", + "typeString": "type(contract CompInterface)" + } + }, + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3113:20:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CompInterface_$2636", + "typeString": "contract CompInterface" + } + }, + "src": "3106:27:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CompInterface_$2636", + "typeString": "contract CompInterface" + } + }, + "id": 1096, + "nodeType": "ExpressionStatement", + "src": "3106:27:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1097, + "name": "votingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2490, + "src": "3143:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1098, + "name": "votingPeriod_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1008, + "src": "3158:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3143:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1100, + "nodeType": "ExpressionStatement", + "src": "3143:28:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1101, + "name": "votingDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2488, + "src": "3181:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1102, + "name": "votingDelay_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1010, + "src": "3195:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3181:26:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1104, + "nodeType": "ExpressionStatement", + "src": "3181:26:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1105, + "name": "proposalThreshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2492, + "src": "3217:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1106, + "name": "proposalThreshold_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1012, + "src": "3237:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3217:38:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1108, + "nodeType": "ExpressionStatement", + "src": "3217:38:1" + } + ] + }, + "documentation": "@notice Used to initialize the contract during delegator contructor\n@param timelock_ The address of the Timelock\n@param comp_ The address of the COMP token\n@param votingPeriod_ The initial voting period\n@param votingDelay_ The initial voting delay\n@param proposalThreshold_ The initial proposal threshold", + "id": 1110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1013, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1004, + "name": "timelock_", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "2122:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1003, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2122:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1006, + "name": "comp_", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "2141:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1005, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2141:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1008, + "name": "votingPeriod_", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "2156:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1007, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2156:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1010, + "name": "votingDelay_", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "2176:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1009, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2176:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1012, + "name": "proposalThreshold_", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "2195:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1011, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2195:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2121:98:1" + }, + "returnParameters": { + "id": 1014, + "nodeType": "ParameterList", + "parameters": [], + "src": "2227:0:1" + }, + "scope": 2267, + "src": "2102:1160:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1293, + "nodeType": "Block", + "src": "3902:2139:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1130, + "name": "initialProposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2494, + "src": "3978:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1131, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3999:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3978:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a70726f706f73653a20476f7665726e6f7220427261766f206e6f7420616374697665", + "id": 1133, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4002:51:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2f7689ed1f85dde3dc8971cd363eb00503765913f120e6240508da9a370f15c7", + "typeString": "literal_string \"GovernorBravo::propose: Governor Bravo not active\"" + }, + "value": "GovernorBravo::propose: Governor Bravo not active" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2f7689ed1f85dde3dc8971cd363eb00503765913f120e6240508da9a370f15c7", + "typeString": "literal_string \"GovernorBravo::propose: Governor Bravo not active\"" + } + ], + "id": 1129, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "3970:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3970:84:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1135, + "nodeType": "ExpressionStatement", + "src": "3970:84:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1139, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "4091:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4091:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1142, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3345, + "src": "4110:5:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 1143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4110:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "31", + "id": 1144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4124:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1141, + "name": "sub256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2254, + "src": "4103:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4103:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1137, + "name": "comp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2500, + "src": "4072:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CompInterface_$2636", + "typeString": "contract CompInterface" + } + }, + "id": 1138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getPriorVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2635, + "src": "4072:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$", + "typeString": "function (address,uint256) view external returns (uint96)" + } + }, + "id": 1146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4072:55:1", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 1147, + "name": "proposalThreshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2492, + "src": "4130:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4072:75:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73657220766f7465732062656c6f772070726f706f73616c207468726573686f6c64", + "id": 1149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4149:65:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cce33201973389eb5d5eadb02095f9ccc730733696a536c64362c77126b5086b", + "typeString": "literal_string \"GovernorBravo::propose: proposer votes below proposal threshold\"" + }, + "value": "GovernorBravo::propose: proposer votes below proposal threshold" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cce33201973389eb5d5eadb02095f9ccc730733696a536c64362c77126b5086b", + "typeString": "literal_string \"GovernorBravo::propose: proposer votes below proposal threshold\"" + } + ], + "id": 1136, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "4064:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4064:151:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1151, + "nodeType": "ExpressionStatement", + "src": "4064:151:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1153, + "name": "targets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "4233:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4233:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1155, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "4251:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4251:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4233:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1158, + "name": "targets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "4268:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4268:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1160, + "name": "signatures", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1119, + "src": "4286:10:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "id": 1161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4286:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4268:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4233:70:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1164, + "name": "targets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "4307:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4307:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1166, + "name": "calldatas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1122, + "src": "4325:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4325:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4307:34:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4233:108:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73616c2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d61746368", + "id": 1170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4343:70:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_69621e97c5d982910ff5cd550f5bc5eae1e6396f0f2af9267879c186d483c16b", + "typeString": "literal_string \"GovernorBravo::propose: proposal function information arity mismatch\"" + }, + "value": "GovernorBravo::propose: proposal function information arity mismatch" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_69621e97c5d982910ff5cd550f5bc5eae1e6396f0f2af9267879c186d483c16b", + "typeString": "literal_string \"GovernorBravo::propose: proposal function information arity mismatch\"" + } + ], + "id": 1152, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "4225:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4225:189:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1172, + "nodeType": "ExpressionStatement", + "src": "4225:189:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1174, + "name": "targets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "4432:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4432:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4450:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4432:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a70726f706f73653a206d7573742070726f7669646520616374696f6e73", + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4453:46:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_942e2bb983822c6256804c0e2d65587399729d07b6b48b9e3fe435de5044b803", + "typeString": "literal_string \"GovernorBravo::propose: must provide actions\"" + }, + "value": "GovernorBravo::propose: must provide actions" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_942e2bb983822c6256804c0e2d65587399729d07b6b48b9e3fe435de5044b803", + "typeString": "literal_string \"GovernorBravo::propose: must provide actions\"" + } + ], + "id": 1173, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "4424:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4424:76:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1180, + "nodeType": "ExpressionStatement", + "src": "4424:76:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1182, + "name": "targets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "4518:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4518:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 1184, + "name": "proposalMaxOperations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 992, + "src": "4536:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4518:39:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a70726f706f73653a20746f6f206d616e7920616374696f6e73", + "id": 1186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4559:42:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b54d69ba9f9abad90f1f013b8ab5a1d9b4c579f5bc801e2709d01ada775467a3", + "typeString": "literal_string \"GovernorBravo::propose: too many actions\"" + }, + "value": "GovernorBravo::propose: too many actions" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b54d69ba9f9abad90f1f013b8ab5a1d9b4c579f5bc801e2709d01ada775467a3", + "typeString": "literal_string \"GovernorBravo::propose: too many actions\"" + } + ], + "id": 1181, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "4510:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4510:92:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1188, + "nodeType": "ExpressionStatement", + "src": "4510:92:1" + }, + { + "assignments": [ + 1190 + ], + "declarations": [ + { + "constant": false, + "id": 1190, + "name": "latestProposalId", + "nodeType": "VariableDeclaration", + "scope": 1293, + "src": "4613:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1189, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4613:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1195, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1191, + "name": "latestProposalIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2508, + "src": "4637:17:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1194, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1192, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "4655:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4655:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4637:29:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4613:53:1" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1196, + "name": "latestProposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1190, + "src": "4680:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1197, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4700:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4680:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1222, + "nodeType": "IfStatement", + "src": "4676:450:1", + "trueBody": { + "id": 1221, + "nodeType": "Block", + "src": "4703:423:1", + "statements": [ + { + "assignments": [ + 1200 + ], + "declarations": [ + { + "constant": false, + "id": 1200, + "name": "proposersLatestProposalState", + "nodeType": "VariableDeclaration", + "scope": 1221, + "src": "4715:42:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "typeName": { + "contractScope": null, + "id": 1199, + "name": "ProposalState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2561, + "src": "4715:13:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1204, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1202, + "name": "latestProposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1190, + "src": "4766:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1201, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1733, + "src": "4760:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$2561_$", + "typeString": "function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)" + } + }, + "id": 1203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4760:23:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4715:68:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "id": 1209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1206, + "name": "proposersLatestProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1200, + "src": "4803:28:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1207, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "4835:13:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$2561_$", + "typeString": "type(enum GovernorBravoDelegateStorageV1.ProposalState)" + } + }, + "id": 1208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Active", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4835:20:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "src": "4803:52:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c6976652070726f706f73616c207065722070726f706f7365722c20666f756e6420616e20616c7265616479206163746976652070726f706f73616c", + "id": 1210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4857:90:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c50c351fb39a3fd6000549d303eb3b76f9e50a4f12a9fca3ac5b1e05e941e83d", + "typeString": "literal_string \"GovernorBravo::propose: one live proposal per proposer, found an already active proposal\"" + }, + "value": "GovernorBravo::propose: one live proposal per proposer, found an already active proposal" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c50c351fb39a3fd6000549d303eb3b76f9e50a4f12a9fca3ac5b1e05e941e83d", + "typeString": "literal_string \"GovernorBravo::propose: one live proposal per proposer, found an already active proposal\"" + } + ], + "id": 1205, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "4795:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4795:153:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1212, + "nodeType": "ExpressionStatement", + "src": "4795:153:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "id": 1217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1214, + "name": "proposersLatestProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1200, + "src": "4968:28:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1215, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "5000:13:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$2561_$", + "typeString": "type(enum GovernorBravoDelegateStorageV1.ProposalState)" + } + }, + "id": 1216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Pending", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5000:21:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "src": "4968:53:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c6976652070726f706f73616c207065722070726f706f7365722c20666f756e6420616e20616c72656164792070656e64696e672070726f706f73616c", + "id": 1218, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5023:91:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b68c77fe71de4f5cded2058593f89b465f4c2da104481b127e1b9b6156e12ee0", + "typeString": "literal_string \"GovernorBravo::propose: one live proposal per proposer, found an already pending proposal\"" + }, + "value": "GovernorBravo::propose: one live proposal per proposer, found an already pending proposal" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b68c77fe71de4f5cded2058593f89b465f4c2da104481b127e1b9b6156e12ee0", + "typeString": "literal_string \"GovernorBravo::propose: one live proposal per proposer, found an already pending proposal\"" + } + ], + "id": 1213, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "4960:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4960:155:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1220, + "nodeType": "ExpressionStatement", + "src": "4960:155:1" + } + ] + } + }, + { + "assignments": [ + 1224 + ], + "declarations": [ + { + "constant": false, + "id": 1224, + "name": "startBlock", + "nodeType": "VariableDeclaration", + "scope": 1293, + "src": "5136:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1223, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5136:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1230, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1226, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3345, + "src": "5161:5:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 1227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5161:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1228, + "name": "votingDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2488, + "src": "5175:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1225, + "name": "add256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2233, + "src": "5154:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5154:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5136:51:1" + }, + { + "assignments": [ + 1232 + ], + "declarations": [ + { + "constant": false, + "id": 1232, + "name": "endBlock", + "nodeType": "VariableDeclaration", + "scope": 1293, + "src": "5197:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1231, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5197:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1237, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1234, + "name": "startBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1224, + "src": "5220:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1235, + "name": "votingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2490, + "src": "5232:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1233, + "name": "add256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2233, + "src": "5213:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5213:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5197:48:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "5256:15:1", + "subExpression": { + "argumentTypes": null, + "id": 1238, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2496, + "src": "5256:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1240, + "nodeType": "ExpressionStatement", + "src": "5256:15:1" + }, + { + "assignments": [ + 1242 + ], + "declarations": [ + { + "constant": false, + "id": 1242, + "name": "newProposal", + "nodeType": "VariableDeclaration", + "scope": 1293, + "src": "5281:27:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_memory_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 1241, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2545, + "src": "5281:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1260, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1244, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2496, + "src": "5338:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1245, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "5375:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5375:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 1247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5404:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "id": 1248, + "name": "targets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "5428:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 1249, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "5457:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 1250, + "name": "signatures", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1119, + "src": "5489:10:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + { + "argumentTypes": null, + "id": 1251, + "name": "calldatas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1122, + "src": "5524:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + { + "argumentTypes": null, + "id": 1252, + "name": "startBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1224, + "src": "5559:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1253, + "name": "endBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1232, + "src": "5593:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 1254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5625:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 1255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5654:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 1256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5683:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5708:5:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5737:5:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr", + "typeString": "string memory[] memory" + }, + { + "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1243, + "name": "Proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2545, + "src": "5311:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Proposal_$2545_storage_ptr_$", + "typeString": "type(struct GovernorBravoDelegateStorageV1.Proposal storage pointer)" + } + }, + "id": 1259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "id", + "proposer", + "eta", + "targets", + "values", + "signatures", + "calldatas", + "startBlock", + "endBlock", + "forVotes", + "againstVotes", + "abstainVotes", + "canceled", + "executed" + ], + "nodeType": "FunctionCall", + "src": "5311:442:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_memory", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5281:472:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1261, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "5764:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$2545_storage_$", + "typeString": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)" + } + }, + "id": 1264, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1262, + "name": "newProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1242, + "src": "5774:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_memory_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal memory" + } + }, + "id": 1263, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "id", + "nodeType": "MemberAccess", + "referencedDeclaration": 2510, + "src": "5774:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5764:25:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1265, + "name": "newProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1242, + "src": "5792:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_memory_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal memory" + } + }, + "src": "5764:39:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage ref" + } + }, + "id": 1267, + "nodeType": "ExpressionStatement", + "src": "5764:39:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1268, + "name": "latestProposalIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2508, + "src": "5813:17:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1271, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1269, + "name": "newProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1242, + "src": "5831:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_memory_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal memory" + } + }, + "id": 1270, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "proposer", + "nodeType": "MemberAccess", + "referencedDeclaration": 2512, + "src": "5831:20:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5813:39:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1272, + "name": "newProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1242, + "src": "5855:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_memory_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal memory" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "id", + "nodeType": "MemberAccess", + "referencedDeclaration": 2510, + "src": "5855:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5813:56:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1275, + "nodeType": "ExpressionStatement", + "src": "5813:56:1" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1277, + "name": "newProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1242, + "src": "5901:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_memory_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal memory" + } + }, + "id": 1278, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "id", + "nodeType": "MemberAccess", + "referencedDeclaration": 2510, + "src": "5901:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1279, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "5917:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5917:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1281, + "name": "targets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "5929:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 1282, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "5938:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 1283, + "name": "signatures", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1119, + "src": "5946:10:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + { + "argumentTypes": null, + "id": 1284, + "name": "calldatas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1122, + "src": "5958:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + { + "argumentTypes": null, + "id": 1285, + "name": "startBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1224, + "src": "5969:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1286, + "name": "endBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1232, + "src": "5981:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1287, + "name": "description", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1124, + "src": "5991:11:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr", + "typeString": "string memory[] memory" + }, + { + "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1276, + "name": "ProposalCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2414, + "src": "5885:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_string_memory_$dyn_memory_ptr_$_t_array$_t_bytes_memory_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,address[] memory,uint256[] memory,string memory[] memory,bytes memory[] memory,uint256,uint256,string memory)" + } + }, + "id": 1288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5885:118:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1289, + "nodeType": "EmitStatement", + "src": "5880:123:1" + }, + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1290, + "name": "newProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1242, + "src": "6020:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_memory_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal memory" + } + }, + "id": 1291, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "id", + "nodeType": "MemberAccess", + "referencedDeclaration": 2510, + "src": "6020:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1128, + "id": 1292, + "nodeType": "Return", + "src": "6013:21:1" + } + ] + }, + "documentation": "@notice Function used to propose a new proposal. Sender must have delegates above the proposal threshold\n@param targets Target addresses for proposal calls\n@param values Eth values for proposal calls\n@param signatures Function signatures for proposal calls\n@param calldatas Calldatas for proposal calls\n@param description String description of the proposal\n@return Proposal id of new proposal", + "id": 1294, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "propose", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1125, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1113, + "name": "targets", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "3751:24:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3751:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1112, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3751:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1116, + "name": "values", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "3777:20:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1114, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3777:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1115, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3777:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1119, + "name": "signatures", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "3799:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 1117, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3799:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 1118, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3799:8:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1122, + "name": "calldatas", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "3827:24:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 1120, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3827:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 1121, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1124, + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "3853:25:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1123, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3853:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3750:129:1" + }, + "returnParameters": { + "id": 1128, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1127, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "3896:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1126, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3896:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3895:6:1" + }, + "scope": 2267, + "src": "3734:2307:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1370, + "nodeType": "Block", + "src": "6216:536:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "id": 1305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1301, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1296, + "src": "6240:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1300, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1733, + "src": "6234:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$2561_$", + "typeString": "function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)" + } + }, + "id": 1302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6234:17:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1303, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "6255:13:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$2561_$", + "typeString": "type(enum GovernorBravoDelegateStorageV1.ProposalState)" + } + }, + "id": 1304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Succeeded", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6255:23:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "src": "6234:44:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a71756575653a2070726f706f73616c2063616e206f6e6c792062652071756575656420696620697420697320737563636565646564", + "id": 1306, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6280:70:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8b18b74b598045096f64bbdf9460c8b5777b3d00c07ed948d457fa444a8ee5bd", + "typeString": "literal_string \"GovernorBravo::queue: proposal can only be queued if it is succeeded\"" + }, + "value": "GovernorBravo::queue: proposal can only be queued if it is succeeded" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8b18b74b598045096f64bbdf9460c8b5777b3d00c07ed948d457fa444a8ee5bd", + "typeString": "literal_string \"GovernorBravo::queue: proposal can only be queued if it is succeeded\"" + } + ], + "id": 1299, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "6226:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6226:125:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1308, + "nodeType": "ExpressionStatement", + "src": "6226:125:1" + }, + { + "assignments": [ + 1310 + ], + "declarations": [ + { + "constant": false, + "id": 1310, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 1370, + "src": "6361:25:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 1309, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2545, + "src": "6361:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1314, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1311, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "6389:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$2545_storage_$", + "typeString": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)" + } + }, + "id": 1313, + "indexExpression": { + "argumentTypes": null, + "id": 1312, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1296, + "src": "6399:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6389:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6361:49:1" + }, + { + "assignments": [ + 1316 + ], + "declarations": [ + { + "constant": false, + "id": 1316, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 1370, + "src": "6420:8:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1315, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6420:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1324, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1318, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3345, + "src": "6438:5:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 1319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6438:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 1320, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "6455:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + } + }, + "id": 1321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "delay", + "nodeType": "MemberAccess", + "referencedDeclaration": 2567, + "src": "6455:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6455:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1317, + "name": "add256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2233, + "src": "6431:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6431:41:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6420:52:1" + }, + { + "body": { + "id": 1357, + "nodeType": "Block", + "src": "6533:139:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1338, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1310, + "src": "6569:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1339, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2517, + "src": "6569:16:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 1341, + "indexExpression": { + "argumentTypes": null, + "id": 1340, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1326, + "src": "6586:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6569:19:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1342, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1310, + "src": "6590:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1343, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "values", + "nodeType": "MemberAccess", + "referencedDeclaration": 2520, + "src": "6590:15:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 1345, + "indexExpression": { + "argumentTypes": null, + "id": 1344, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1326, + "src": "6606:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6590:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1346, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1310, + "src": "6610:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1347, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "signatures", + "nodeType": "MemberAccess", + "referencedDeclaration": 2523, + "src": "6610:19:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", + "typeString": "string storage ref[] storage ref" + } + }, + "id": 1349, + "indexExpression": { + "argumentTypes": null, + "id": 1348, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1326, + "src": "6630:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6610:22:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1350, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1310, + "src": "6634:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1351, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "calldatas", + "nodeType": "MemberAccess", + "referencedDeclaration": 2526, + "src": "6634:18:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage", + "typeString": "bytes storage ref[] storage ref" + } + }, + "id": 1353, + "indexExpression": { + "argumentTypes": null, + "id": 1352, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1326, + "src": "6653:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6634:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + { + "argumentTypes": null, + "id": 1354, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1316, + "src": "6657:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1337, + "name": "queueOrRevertInternal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1413, + "src": "6547:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,string memory,bytes memory,uint256)" + } + }, + "id": 1355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6547:114:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1356, + "nodeType": "ExpressionStatement", + "src": "6547:114:1" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1329, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1326, + "src": "6499:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1330, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1310, + "src": "6503:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1331, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2517, + "src": "6503:16:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 1332, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6503:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6499:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1358, + "initializationExpression": { + "assignments": [ + 1326 + ], + "declarations": [ + { + "constant": false, + "id": 1326, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1358, + "src": "6487:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1325, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6487:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1328, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6496:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6487:10:1" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6528:3:1", + "subExpression": { + "argumentTypes": null, + "id": 1334, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1326, + "src": "6528:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1336, + "nodeType": "ExpressionStatement", + "src": "6528:3:1" + }, + "nodeType": "ForStatement", + "src": "6482:190:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1359, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1310, + "src": "6681:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1361, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "eta", + "nodeType": "MemberAccess", + "referencedDeclaration": 2514, + "src": "6681:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1362, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1316, + "src": "6696:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6681:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1364, + "nodeType": "ExpressionStatement", + "src": "6681:18:1" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1366, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1296, + "src": "6729:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1367, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1316, + "src": "6741:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1365, + "name": "ProposalQueued", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2436, + "src": "6714:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6714:31:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1369, + "nodeType": "EmitStatement", + "src": "6709:36:1" + } + ] + }, + "documentation": "@notice Queues a proposal of state succeeded\n@param proposalId The id of the proposal to queue", + "id": 1371, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "queue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1297, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1296, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "6190:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1295, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6190:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6189:17:1" + }, + "returnParameters": { + "id": 1298, + "nodeType": "ParameterList", + "parameters": [], + "src": "6216:0:1" + }, + "scope": 2267, + "src": "6175:577:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1412, + "nodeType": "Block", + "src": "6880:275:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "6898:88:1", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1390, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1373, + "src": "6948:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1391, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1375, + "src": "6956:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1392, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1377, + "src": "6963:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1393, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1379, + "src": "6974:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 1394, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1381, + "src": "6980:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1388, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3342, + "src": "6937:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6937:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6937:47:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1387, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3349, + "src": "6927:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6927:58:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 1385, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "6899:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + } + }, + "id": 1386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "queuedTransactions", + "nodeType": "MemberAccess", + "referencedDeclaration": 2582, + "src": "6899:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 1397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6899:87:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a71756575654f72526576657274496e7465726e616c3a206964656e746963616c2070726f706f73616c20616374696f6e20616c72656164792071756575656420617420657461", + "id": 1399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6988:87:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1c438b0cfaad67e6d7c60ceb8ef7ecff37faff9e792b7a026c00b374a537d965", + "typeString": "literal_string \"GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta\"" + }, + "value": "GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1c438b0cfaad67e6d7c60ceb8ef7ecff37faff9e792b7a026c00b374a537d965", + "typeString": "literal_string \"GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta\"" + } + ], + "id": 1384, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "6890:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6890:186:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1401, + "nodeType": "ExpressionStatement", + "src": "6890:186:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1405, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1373, + "src": "7112:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1406, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1375, + "src": "7120:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1407, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1377, + "src": "7127:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1408, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1379, + "src": "7138:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 1409, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1381, + "src": "7144:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1402, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "7086:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + } + }, + "id": 1404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "queueTransaction", + "nodeType": "MemberAccess", + "referencedDeclaration": 2597, + "src": "7086:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (address,uint256,string memory,bytes memory,uint256) external returns (bytes32)" + } + }, + "id": 1410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7086:62:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1411, + "nodeType": "ExpressionStatement", + "src": "7086:62:1" + } + ] + }, + "documentation": null, + "id": 1413, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "queueOrRevertInternal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1373, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1413, + "src": "6789:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1372, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6789:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1375, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1413, + "src": "6805:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1374, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6805:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1377, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 1413, + "src": "6817:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1376, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6817:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1379, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1413, + "src": "6842:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1378, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6842:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1381, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 1413, + "src": "6861:8:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1380, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6861:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6788:82:1" + }, + "returnParameters": { + "id": 1383, + "nodeType": "ParameterList", + "parameters": [], + "src": "6880:0:1" + }, + "scope": 2267, + "src": "6758:397:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1488, + "nodeType": "Block", + "src": "7350:516:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "id": 1424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1420, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "7374:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1419, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1733, + "src": "7368:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$2561_$", + "typeString": "function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)" + } + }, + "id": 1421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7368:17:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1422, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "7389:13:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$2561_$", + "typeString": "type(enum GovernorBravoDelegateStorageV1.ProposalState)" + } + }, + "id": 1423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Queued", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7389:20:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "src": "7368:41:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a657865637574653a2070726f706f73616c2063616e206f6e6c7920626520657865637574656420696620697420697320717565756564", + "id": 1425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7411:71:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5fbf48e8c3a21a3625f21d95c8b2dda12d19a9eb23201ab81343d35beaf2fa53", + "typeString": "literal_string \"GovernorBravo::execute: proposal can only be executed if it is queued\"" + }, + "value": "GovernorBravo::execute: proposal can only be executed if it is queued" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5fbf48e8c3a21a3625f21d95c8b2dda12d19a9eb23201ab81343d35beaf2fa53", + "typeString": "literal_string \"GovernorBravo::execute: proposal can only be executed if it is queued\"" + } + ], + "id": 1418, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "7360:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7360:123:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1427, + "nodeType": "ExpressionStatement", + "src": "7360:123:1" + }, + { + "assignments": [ + 1429 + ], + "declarations": [ + { + "constant": false, + "id": 1429, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 1488, + "src": "7493:25:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 1428, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2545, + "src": "7493:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1433, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1430, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "7521:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$2545_storage_$", + "typeString": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)" + } + }, + "id": 1432, + "indexExpression": { + "argumentTypes": null, + "id": 1431, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "7531:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7521:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7493:49:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1434, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "7552:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1436, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "executed", + "nodeType": "MemberAccess", + "referencedDeclaration": 2540, + "src": "7552:17:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7572:4:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "7552:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1439, + "nodeType": "ExpressionStatement", + "src": "7552:24:1" + }, + { + "body": { + "id": 1482, + "nodeType": "Block", + "src": "7637:180:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1462, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "7705:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1463, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2517, + "src": "7705:16:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 1465, + "indexExpression": { + "argumentTypes": null, + "id": 1464, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1441, + "src": "7722:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7705:19:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1466, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "7726:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1467, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "values", + "nodeType": "MemberAccess", + "referencedDeclaration": 2520, + "src": "7726:15:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 1469, + "indexExpression": { + "argumentTypes": null, + "id": 1468, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1441, + "src": "7742:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7726:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1470, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "7746:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1471, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "signatures", + "nodeType": "MemberAccess", + "referencedDeclaration": 2523, + "src": "7746:19:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", + "typeString": "string storage ref[] storage ref" + } + }, + "id": 1473, + "indexExpression": { + "argumentTypes": null, + "id": 1472, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1441, + "src": "7766:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7746:22:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1474, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "7770:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1475, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "calldatas", + "nodeType": "MemberAccess", + "referencedDeclaration": 2526, + "src": "7770:18:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage", + "typeString": "bytes storage ref[] storage ref" + } + }, + "id": 1477, + "indexExpression": { + "argumentTypes": null, + "id": 1476, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1441, + "src": "7789:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7770:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1478, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "7793:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1479, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "eta", + "nodeType": "MemberAccess", + "referencedDeclaration": 2514, + "src": "7793:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1457, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "7685:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1458, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "values", + "nodeType": "MemberAccess", + "referencedDeclaration": 2520, + "src": "7685:15:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 1460, + "indexExpression": { + "argumentTypes": null, + "id": 1459, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1441, + "src": "7701:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7685:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1452, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "7651:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + } + }, + "id": 1455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "executeTransaction", + "nodeType": "MemberAccess", + "referencedDeclaration": 2625, + "src": "7651:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,uint256,string memory,bytes memory,uint256) payable external returns (bytes memory)" + } + }, + "id": 1456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7651:33:1", + "typeDescriptions": { + "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_external_payable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$value_$", + "typeString": "function (uint256) pure returns (function (address,uint256,string memory,bytes memory,uint256) payable external returns (bytes memory))" + } + }, + "id": 1461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7651:53:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$value", + "typeString": "function (address,uint256,string memory,bytes memory,uint256) payable external returns (bytes memory)" + } + }, + "id": 1480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7651:155:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1481, + "nodeType": "ExpressionStatement", + "src": "7651:155:1" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1444, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1441, + "src": "7603:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1445, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "7607:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1446, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2517, + "src": "7607:16:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 1447, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7607:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7603:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1483, + "initializationExpression": { + "assignments": [ + 1441 + ], + "declarations": [ + { + "constant": false, + "id": 1441, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1483, + "src": "7591:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1440, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7591:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1443, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1442, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7600:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "7591:10:1" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7632:3:1", + "subExpression": { + "argumentTypes": null, + "id": 1449, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1441, + "src": "7632:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1451, + "nodeType": "ExpressionStatement", + "src": "7632:3:1" + }, + "nodeType": "ForStatement", + "src": "7586:231:1" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1485, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "7848:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1484, + "name": "ProposalExecuted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2440, + "src": "7831:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7831:28:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1487, + "nodeType": "EmitStatement", + "src": "7826:33:1" + } + ] + }, + "documentation": "@notice Executes a queued proposal if eta has passed\n@param proposalId The id of the proposal to execute", + "id": 1489, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "execute", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1416, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1415, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 1489, + "src": "7316:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1414, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7316:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7315:17:1" + }, + "returnParameters": { + "id": 1417, + "nodeType": "ParameterList", + "parameters": [], + "src": "7350:0:1" + }, + "scope": 2267, + "src": "7299:567:1", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1579, + "nodeType": "Block", + "src": "8112:666:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1496, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1491, + "src": "8136:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1495, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1733, + "src": "8130:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$2561_$", + "typeString": "function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)" + } + }, + "id": 1497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8130:17:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1498, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "8151:13:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$2561_$", + "typeString": "type(enum GovernorBravoDelegateStorageV1.ProposalState)" + } + }, + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Executed", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8151:22:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "src": "8130:43:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a63616e63656c3a2063616e6e6f742063616e63656c2065786563757465642070726f706f73616c", + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8175:56:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d48c38cdee932c14d51343eb15469a6b4385fa79519fea37fc1716c00abad924", + "typeString": "literal_string \"GovernorBravo::cancel: cannot cancel executed proposal\"" + }, + "value": "GovernorBravo::cancel: cannot cancel executed proposal" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d48c38cdee932c14d51343eb15469a6b4385fa79519fea37fc1716c00abad924", + "typeString": "literal_string \"GovernorBravo::cancel: cannot cancel executed proposal\"" + } + ], + "id": 1494, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "8122:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8122:110:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1503, + "nodeType": "ExpressionStatement", + "src": "8122:110:1" + }, + { + "assignments": [ + 1505 + ], + "declarations": [ + { + "constant": false, + "id": 1505, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "8243:25:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 1504, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2545, + "src": "8243:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1509, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1506, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "8271:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$2545_storage_$", + "typeString": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)" + } + }, + "id": 1508, + "indexExpression": { + "argumentTypes": null, + "id": 1507, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1491, + "src": "8281:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8271:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8243:49:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1511, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "8310:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8310:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1513, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1505, + "src": "8324:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1514, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "proposer", + "nodeType": "MemberAccess", + "referencedDeclaration": 2512, + "src": "8324:17:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8310:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1518, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1505, + "src": "8364:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1519, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "proposer", + "nodeType": "MemberAccess", + "referencedDeclaration": 2512, + "src": "8364:17:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1521, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3345, + "src": "8390:5:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 1522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8390:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "31", + "id": 1523, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8404:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1520, + "name": "sub256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2254, + "src": "8383:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8383:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1516, + "name": "comp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2500, + "src": "8345:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CompInterface_$2636", + "typeString": "contract CompInterface" + } + }, + "id": 1517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getPriorVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2635, + "src": "8345:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$", + "typeString": "function (address,uint256) view external returns (uint96)" + } + }, + "id": 1525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8345:62:1", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 1526, + "name": "proposalThreshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2492, + "src": "8410:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8345:82:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8310:117:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a63616e63656c3a2070726f706f7365722061626f7665207468726573686f6c64", + "id": 1529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8429:49:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_af71986e0c1f80c2512b8b2deae5a125bfd8f0bdb9eb99f370c87681d9dd1dd1", + "typeString": "literal_string \"GovernorBravo::cancel: proposer above threshold\"" + }, + "value": "GovernorBravo::cancel: proposer above threshold" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_af71986e0c1f80c2512b8b2deae5a125bfd8f0bdb9eb99f370c87681d9dd1dd1", + "typeString": "literal_string \"GovernorBravo::cancel: proposer above threshold\"" + } + ], + "id": 1510, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "8302:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8302:177:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1531, + "nodeType": "ExpressionStatement", + "src": "8302:177:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1532, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1505, + "src": "8490:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1534, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "canceled", + "nodeType": "MemberAccess", + "referencedDeclaration": 2538, + "src": "8490:17:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8510:4:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "8490:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1537, + "nodeType": "ExpressionStatement", + "src": "8490:24:1" + }, + { + "body": { + "id": 1573, + "nodeType": "Block", + "src": "8575:153:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1553, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1505, + "src": "8616:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1554, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2517, + "src": "8616:16:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 1556, + "indexExpression": { + "argumentTypes": null, + "id": 1555, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "8633:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8616:19:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1557, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1505, + "src": "8637:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1558, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "values", + "nodeType": "MemberAccess", + "referencedDeclaration": 2520, + "src": "8637:15:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 1560, + "indexExpression": { + "argumentTypes": null, + "id": 1559, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "8653:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8637:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1561, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1505, + "src": "8657:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1562, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "signatures", + "nodeType": "MemberAccess", + "referencedDeclaration": 2523, + "src": "8657:19:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", + "typeString": "string storage ref[] storage ref" + } + }, + "id": 1564, + "indexExpression": { + "argumentTypes": null, + "id": 1563, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "8677:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8657:22:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1565, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1505, + "src": "8681:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1566, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "calldatas", + "nodeType": "MemberAccess", + "referencedDeclaration": 2526, + "src": "8681:18:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage", + "typeString": "bytes storage ref[] storage ref" + } + }, + "id": 1568, + "indexExpression": { + "argumentTypes": null, + "id": 1567, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "8700:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8681:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1569, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1505, + "src": "8704:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1570, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "eta", + "nodeType": "MemberAccess", + "referencedDeclaration": 2514, + "src": "8704:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1550, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "8589:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + } + }, + "id": 1552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "cancelTransaction", + "nodeType": "MemberAccess", + "referencedDeclaration": 2610, + "src": "8589:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,string memory,bytes memory,uint256) external" + } + }, + "id": 1571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8589:128:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1572, + "nodeType": "ExpressionStatement", + "src": "8589:128:1" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1542, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "8541:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1543, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1505, + "src": "8545:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1544, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2517, + "src": "8545:16:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 1545, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8545:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8541:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1574, + "initializationExpression": { + "assignments": [ + 1539 + ], + "declarations": [ + { + "constant": false, + "id": 1539, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1574, + "src": "8529:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1538, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8529:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1541, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8538:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "8529:10:1" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "8570:3:1", + "subExpression": { + "argumentTypes": null, + "id": 1547, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1539, + "src": "8570:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1549, + "nodeType": "ExpressionStatement", + "src": "8570:3:1" + }, + "nodeType": "ForStatement", + "src": "8524:204:1" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1576, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1491, + "src": "8760:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1575, + "name": "ProposalCanceled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2430, + "src": "8743:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8743:28:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1578, + "nodeType": "EmitStatement", + "src": "8738:33:1" + } + ] + }, + "documentation": "@notice Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold\n@param proposalId The id of the proposal to cancel", + "id": 1580, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "cancel", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1491, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 1580, + "src": "8086:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1490, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8086:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8085:17:1" + }, + "returnParameters": { + "id": 1493, + "nodeType": "ParameterList", + "parameters": [], + "src": "8112:0:1" + }, + "scope": 2267, + "src": "8070:708:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1613, + "nodeType": "Block", + "src": "9138:124:1", + "statements": [ + { + "assignments": [ + 1598 + ], + "declarations": [ + { + "constant": false, + "id": 1598, + "name": "p", + "nodeType": "VariableDeclaration", + "scope": 1613, + "src": "9148:18:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 1597, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2545, + "src": "9148:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1602, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1599, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "9169:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$2545_storage_$", + "typeString": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)" + } + }, + "id": 1601, + "indexExpression": { + "argumentTypes": null, + "id": 1600, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1582, + "src": "9179:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9169:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9148:42:1" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1603, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1598, + "src": "9208:1:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2517, + "src": "9208:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1605, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1598, + "src": "9219:1:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1606, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "values", + "nodeType": "MemberAccess", + "referencedDeclaration": 2520, + "src": "9219:8:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1607, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1598, + "src": "9229:1:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1608, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "signatures", + "nodeType": "MemberAccess", + "referencedDeclaration": 2523, + "src": "9229:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", + "typeString": "string storage ref[] storage ref" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1609, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1598, + "src": "9243:1:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1610, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "calldatas", + "nodeType": "MemberAccess", + "referencedDeclaration": 2526, + "src": "9243:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage", + "typeString": "bytes storage ref[] storage ref" + } + } + ], + "id": 1611, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9207:48:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_array$_t_address_$dyn_storage_$_t_array$_t_uint256_$dyn_storage_$_t_array$_t_string_storage_$dyn_storage_$_t_array$_t_bytes_storage_$dyn_storage_$", + "typeString": "tuple(address[] storage ref,uint256[] storage ref,string storage ref[] storage ref,bytes storage ref[] storage ref)" + } + }, + "functionReturnParameters": 1596, + "id": 1612, + "nodeType": "Return", + "src": "9200:55:1" + } + ] + }, + "documentation": "@notice Gets actions of a proposal\n@param proposalId the id of the proposal\n@return Targets, values, signatures, and calldatas of the proposal actions", + "id": 1614, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getActions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1582, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 1614, + "src": "8996:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1581, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8996:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8995:17:1" + }, + "returnParameters": { + "id": 1596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1586, + "name": "targets", + "nodeType": "VariableDeclaration", + "scope": 1614, + "src": "9036:24:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1584, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9036:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1585, + "length": null, + "nodeType": "ArrayTypeName", + "src": "9036:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1589, + "name": "values", + "nodeType": "VariableDeclaration", + "scope": 1614, + "src": "9062:20:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1587, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9062:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1588, + "length": null, + "nodeType": "ArrayTypeName", + "src": "9062:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1592, + "name": "signatures", + "nodeType": "VariableDeclaration", + "scope": 1614, + "src": "9084:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 1590, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9084:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 1591, + "length": null, + "nodeType": "ArrayTypeName", + "src": "9084:8:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1595, + "name": "calldatas", + "nodeType": "VariableDeclaration", + "scope": 1614, + "src": "9112:24:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 1593, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9112:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 1594, + "length": null, + "nodeType": "ArrayTypeName", + "src": "9112:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9035:102:1" + }, + "scope": 2267, + "src": "8976:286:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1630, + "nodeType": "Block", + "src": "9567:61:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1623, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "9584:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$2545_storage_$", + "typeString": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)" + } + }, + "id": 1625, + "indexExpression": { + "argumentTypes": null, + "id": 1624, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1616, + "src": "9594:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9584:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage ref" + } + }, + "id": 1626, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "receipts", + "nodeType": "MemberAccess", + "referencedDeclaration": 2544, + "src": "9584:30:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Receipt_$2552_storage_$", + "typeString": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt storage ref)" + } + }, + "id": 1628, + "indexExpression": { + "argumentTypes": null, + "id": 1627, + "name": "voter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "9615:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9584:37:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$2552_storage", + "typeString": "struct GovernorBravoDelegateStorageV1.Receipt storage ref" + } + }, + "functionReturnParameters": 1622, + "id": 1629, + "nodeType": "Return", + "src": "9577:44:1" + } + ] + }, + "documentation": "@notice Gets the receipt for a voter on a given proposal\n@param proposalId the id of proposal\n@param voter The address of the voter\n@return The voting receipt", + "id": 1631, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getReceipt", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1619, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1616, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 1631, + "src": "9496:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1615, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9496:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1618, + "name": "voter", + "nodeType": "VariableDeclaration", + "scope": 1631, + "src": "9513:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1617, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9513:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9495:32:1" + }, + "returnParameters": { + "id": 1622, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1621, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1631, + "src": "9551:14:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$2552_memory_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Receipt" + }, + "typeName": { + "contractScope": null, + "id": 1620, + "name": "Receipt", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2552, + "src": "9551:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$2552_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Receipt" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9550:16:1" + }, + "scope": 2267, + "src": "9476:152:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1732, + "nodeType": "Block", + "src": "9844:971:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1639, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2496, + "src": "9862:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1640, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "9879:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9862:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1642, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "9893:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 1643, + "name": "initialProposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2494, + "src": "9906:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9893:30:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9862:61:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a73746174653a20696e76616c69642070726f706f73616c206964", + "id": 1646, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9925:43:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e61e89529abd71ebdc7fb8670e3797adfb63b8cd78cee477b188afbc4e6a151a", + "typeString": "literal_string \"GovernorBravo::state: invalid proposal id\"" + }, + "value": "GovernorBravo::state: invalid proposal id" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e61e89529abd71ebdc7fb8670e3797adfb63b8cd78cee477b188afbc4e6a151a", + "typeString": "literal_string \"GovernorBravo::state: invalid proposal id\"" + } + ], + "id": 1638, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "9854:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9854:115:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1648, + "nodeType": "ExpressionStatement", + "src": "9854:115:1" + }, + { + "assignments": [ + 1650 + ], + "declarations": [ + { + "constant": false, + "id": 1650, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 1732, + "src": "9979:25:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 1649, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2545, + "src": "9979:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1654, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1651, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "10007:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$2545_storage_$", + "typeString": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)" + } + }, + "id": 1653, + "indexExpression": { + "argumentTypes": null, + "id": 1652, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "10017:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10007:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9979:49:1" + }, + { + "condition": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1655, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1650, + "src": "10042:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1656, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "canceled", + "nodeType": "MemberAccess", + "referencedDeclaration": 2538, + "src": "10042:17:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1661, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3345, + "src": "10125:5:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 1662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10125:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1663, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1650, + "src": "10141:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1664, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "startBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 2528, + "src": "10141:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10125:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1670, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3345, + "src": "10225:5:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 1671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10225:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1672, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1650, + "src": "10241:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1673, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "endBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 2530, + "src": "10241:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10225:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1679, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1650, + "src": "10322:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1680, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "forVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2532, + "src": "10322:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1681, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1650, + "src": "10343:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1682, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "againstVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2534, + "src": "10343:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10322:42:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1684, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1650, + "src": "10368:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1685, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "forVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2532, + "src": "10368:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 1686, + "name": "quorumVotes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "10388:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10368:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10322:77:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1693, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1650, + "src": "10465:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1694, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "eta", + "nodeType": "MemberAccess", + "referencedDeclaration": 2514, + "src": "10465:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1695, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10481:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10465:17:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1701, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1650, + "src": "10549:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1702, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "executed", + "nodeType": "MemberAccess", + "referencedDeclaration": 2540, + "src": "10549:17:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1707, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3345, + "src": "10632:5:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 1708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10632:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1710, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1650, + "src": "10658:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1711, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "eta", + "nodeType": "MemberAccess", + "referencedDeclaration": 2514, + "src": "10658:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 1712, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "10672:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + } + }, + "id": 1713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "GRACE_PERIOD", + "nodeType": "MemberAccess", + "referencedDeclaration": 2572, + "src": "10672:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10672:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1709, + "name": "add256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2233, + "src": "10651:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10651:45:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10632:64:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1724, + "nodeType": "Block", + "src": "10757:52:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1721, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "10778:13:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$2561_$", + "typeString": "type(enum GovernorBravoDelegateStorageV1.ProposalState)" + } + }, + "id": 1722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Queued", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10778:20:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "functionReturnParameters": 1637, + "id": 1723, + "nodeType": "Return", + "src": "10771:27:1" + } + ] + }, + "id": 1725, + "nodeType": "IfStatement", + "src": "10628:181:1", + "trueBody": { + "id": 1720, + "nodeType": "Block", + "src": "10698:53:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1717, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "10719:13:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$2561_$", + "typeString": "type(enum GovernorBravoDelegateStorageV1.ProposalState)" + } + }, + "id": 1718, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Expired", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10719:21:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "functionReturnParameters": 1637, + "id": 1719, + "nodeType": "Return", + "src": "10712:28:1" + } + ] + } + }, + "id": 1726, + "nodeType": "IfStatement", + "src": "10545:264:1", + "trueBody": { + "id": 1706, + "nodeType": "Block", + "src": "10568:54:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1703, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "10589:13:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$2561_$", + "typeString": "type(enum GovernorBravoDelegateStorageV1.ProposalState)" + } + }, + "id": 1704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Executed", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10589:22:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "functionReturnParameters": 1637, + "id": 1705, + "nodeType": "Return", + "src": "10582:29:1" + } + ] + } + }, + "id": 1727, + "nodeType": "IfStatement", + "src": "10461:348:1", + "trueBody": { + "id": 1700, + "nodeType": "Block", + "src": "10484:55:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1697, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "10505:13:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$2561_$", + "typeString": "type(enum GovernorBravoDelegateStorageV1.ProposalState)" + } + }, + "id": 1698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Succeeded", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10505:23:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "functionReturnParameters": 1637, + "id": 1699, + "nodeType": "Return", + "src": "10498:30:1" + } + ] + } + }, + "id": 1728, + "nodeType": "IfStatement", + "src": "10318:491:1", + "trueBody": { + "id": 1692, + "nodeType": "Block", + "src": "10401:54:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1689, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "10422:13:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$2561_$", + "typeString": "type(enum GovernorBravoDelegateStorageV1.ProposalState)" + } + }, + "id": 1690, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Defeated", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10422:22:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "functionReturnParameters": 1637, + "id": 1691, + "nodeType": "Return", + "src": "10415:29:1" + } + ] + } + }, + "id": 1729, + "nodeType": "IfStatement", + "src": "10221:588:1", + "trueBody": { + "id": 1678, + "nodeType": "Block", + "src": "10260:52:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1675, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "10281:13:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$2561_$", + "typeString": "type(enum GovernorBravoDelegateStorageV1.ProposalState)" + } + }, + "id": 1676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Active", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10281:20:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "functionReturnParameters": 1637, + "id": 1677, + "nodeType": "Return", + "src": "10274:27:1" + } + ] + } + }, + "id": 1730, + "nodeType": "IfStatement", + "src": "10121:688:1", + "trueBody": { + "id": 1669, + "nodeType": "Block", + "src": "10162:53:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1666, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "10183:13:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$2561_$", + "typeString": "type(enum GovernorBravoDelegateStorageV1.ProposalState)" + } + }, + "id": 1667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Pending", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10183:21:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "functionReturnParameters": 1637, + "id": 1668, + "nodeType": "Return", + "src": "10176:28:1" + } + ] + } + }, + "id": 1731, + "nodeType": "IfStatement", + "src": "10038:771:1", + "trueBody": { + "id": 1660, + "nodeType": "Block", + "src": "10061:54:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1657, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "10082:13:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$2561_$", + "typeString": "type(enum GovernorBravoDelegateStorageV1.ProposalState)" + } + }, + "id": 1658, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Canceled", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10082:22:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "functionReturnParameters": 1637, + "id": 1659, + "nodeType": "Return", + "src": "10075:29:1" + } + ] + } + } + ] + }, + "documentation": "@notice Gets the state of a proposal\n@param proposalId The id of the proposal\n@return Proposal state", + "id": 1733, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "state", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1633, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 1733, + "src": "9791:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1632, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9791:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9790:17:1" + }, + "returnParameters": { + "id": 1637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1636, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1733, + "src": "9829:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "typeName": { + "contractScope": null, + "id": 1635, + "name": "ProposalState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2561, + "src": "9829:13:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9828:15:1" + }, + "scope": 2267, + "src": "9776:1039:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1754, + "nodeType": "Block", + "src": "11083:118:1", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1741, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "11107:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11107:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1743, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1735, + "src": "11119:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1744, + "name": "support", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1737, + "src": "11131:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1746, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "11157:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11157:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1748, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1735, + "src": "11169:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1749, + "name": "support", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1737, + "src": "11181:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 1745, + "name": "castVoteInternal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1988, + "src": "11140:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint8_$returns$_t_uint96_$", + "typeString": "function (address,uint256,uint8) returns (uint96)" + } + }, + "id": 1750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11140:49:1", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11191:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 1740, + "name": "VoteCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2426, + "src": "11098:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint8_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint8,uint256,string memory)" + } + }, + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11098:96:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1753, + "nodeType": "EmitStatement", + "src": "11093:101:1" + } + ] + }, + "documentation": "@notice Cast a vote for a proposal\n@param proposalId The id of the proposal to vote on\n@param support The support value for the vote. 0=against, 1=for, 2=abstain", + "id": 1755, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "castVote", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1738, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1735, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 1755, + "src": "11042:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1734, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11042:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1737, + "name": "support", + "nodeType": "VariableDeclaration", + "scope": 1755, + "src": "11059:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1736, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "11059:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11041:32:1" + }, + "returnParameters": { + "id": 1739, + "nodeType": "ParameterList", + "parameters": [], + "src": "11083:0:1" + }, + "scope": 2267, + "src": "11024:177:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1778, + "nodeType": "Block", + "src": "11582:122:1", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1765, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "11606:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11606:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1767, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1757, + "src": "11618:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1768, + "name": "support", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1759, + "src": "11630:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1770, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "11656:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11656:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1772, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1757, + "src": "11668:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1773, + "name": "support", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1759, + "src": "11680:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 1769, + "name": "castVoteInternal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1988, + "src": "11639:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint8_$returns$_t_uint96_$", + "typeString": "function (address,uint256,uint8) returns (uint96)" + } + }, + "id": 1774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11639:49:1", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "argumentTypes": null, + "id": 1775, + "name": "reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1761, + "src": "11690:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + ], + "id": 1764, + "name": "VoteCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2426, + "src": "11597:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint8_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint8,uint256,string memory)" + } + }, + "id": 1776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11597:100:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1777, + "nodeType": "EmitStatement", + "src": "11592:105:1" + } + ] + }, + "documentation": "@notice Cast a vote for a proposal with a reason\n@param proposalId The id of the proposal to vote on\n@param support The support value for the vote. 0=against, 1=for, 2=abstain\n@param reason The reason given for the vote by the voter", + "id": 1779, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "castVoteWithReason", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1757, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 1779, + "src": "11517:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1756, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11517:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1759, + "name": "support", + "nodeType": "VariableDeclaration", + "scope": 1779, + "src": "11534:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1758, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "11534:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1761, + "name": "reason", + "nodeType": "VariableDeclaration", + "scope": 1779, + "src": "11549:22:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1760, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "11549:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11516:56:1" + }, + "returnParameters": { + "id": 1763, + "nodeType": "ParameterList", + "parameters": [], + "src": "11582:0:1" + }, + "scope": 2267, + "src": "11489:215:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1863, + "nodeType": "Block", + "src": "11966:585:1", + "statements": [ + { + "assignments": [ + 1793 + ], + "declarations": [ + { + "constant": false, + "id": 1793, + "name": "domainSeparator", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "11976:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1792, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "11976:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1810, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1797, + "name": "DOMAIN_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 997, + "src": "12023:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1800, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 968, + "src": "12056:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 1799, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12050:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": "bytes" + }, + "id": 1801, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12050:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1798, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3349, + "src": "12040:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1802, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12040:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1803, + "name": "getChainIdInternal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2266, + "src": "12064:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 1804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12064:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1806, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3381, + "src": "12094:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorBravoDelegate_$2267", + "typeString": "contract GovernorBravoDelegate" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_GovernorBravoDelegate_$2267", + "typeString": "contract GovernorBravoDelegate" + } + ], + "id": 1805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12086:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12086:13:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1795, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3342, + "src": "12012:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12012:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12012:88:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1794, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3349, + "src": "12002:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12002:99:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11976:125:1" + }, + { + "assignments": [ + 1812 + ], + "declarations": [ + { + "constant": false, + "id": 1812, + "name": "structHash", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "12111:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1811, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12111:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1821, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1816, + "name": "BALLOT_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1002, + "src": "12153:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1817, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1781, + "src": "12170:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1818, + "name": "support", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1783, + "src": "12182:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "argumentTypes": null, + "id": 1814, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3342, + "src": "12142:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1815, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12142:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12142:48:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1813, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3349, + "src": "12132:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12132:59:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12111:80:1" + }, + { + "assignments": [ + 1823 + ], + "declarations": [ + { + "constant": false, + "id": 1823, + "name": "digest", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "12201:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1822, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12201:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1832, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "1901", + "id": 1827, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12245:10:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + "value": "\u0019\u0001" + }, + { + "argumentTypes": null, + "id": 1828, + "name": "domainSeparator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1793, + "src": "12257:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1829, + "name": "structHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1812, + "src": "12274:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 1825, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3342, + "src": "12228:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12228:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12228:57:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1824, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3349, + "src": "12218:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12218:68:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12201:85:1" + }, + { + "assignments": [ + 1834 + ], + "declarations": [ + { + "constant": false, + "id": 1834, + "name": "signatory", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "12296:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1833, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12296:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1841, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1836, + "name": "digest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "12326:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1837, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1785, + "src": "12334:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 1838, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1787, + "src": "12337:1:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1839, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1789, + "src": "12340:1:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1835, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3347, + "src": "12316:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12316:26:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12296:46:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1843, + "name": "signatory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1834, + "src": "12360:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1845, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12381:1:1", + "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": 1844, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12373:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "12360:23:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a63617374566f746542795369673a20696e76616c6964207369676e6174757265", + "id": 1848, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12385:49:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_606b6b9610d6d8b33c2c9914e54c767f3ea3c0ecf287b2262a751d4ec2b89d60", + "typeString": "literal_string \"GovernorBravo::castVoteBySig: invalid signature\"" + }, + "value": "GovernorBravo::castVoteBySig: invalid signature" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_606b6b9610d6d8b33c2c9914e54c767f3ea3c0ecf287b2262a751d4ec2b89d60", + "typeString": "literal_string \"GovernorBravo::castVoteBySig: invalid signature\"" + } + ], + "id": 1842, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "12352:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12352:83:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1850, + "nodeType": "ExpressionStatement", + "src": "12352:83:1" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1852, + "name": "signatory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1834, + "src": "12459:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1853, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1781, + "src": "12470:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1854, + "name": "support", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1783, + "src": "12482:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1856, + "name": "signatory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1834, + "src": "12508:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1857, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1781, + "src": "12519:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1858, + "name": "support", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1783, + "src": "12531:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 1855, + "name": "castVoteInternal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1988, + "src": "12491:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint8_$returns$_t_uint96_$", + "typeString": "function (address,uint256,uint8) returns (uint96)" + } + }, + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12491:48:1", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12541:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 1851, + "name": "VoteCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2426, + "src": "12450:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint8_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint8,uint256,string memory)" + } + }, + "id": 1861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12450:94:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1862, + "nodeType": "EmitStatement", + "src": "12445:99:1" + } + ] + }, + "documentation": "@notice Cast a vote for a proposal by signature\n@dev External function that accepts EIP-712 signatures for voting on proposals.", + "id": 1864, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "castVoteBySig", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1781, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 1864, + "src": "11894:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1780, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11894:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1783, + "name": "support", + "nodeType": "VariableDeclaration", + "scope": 1864, + "src": "11911:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1782, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "11911:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1785, + "name": "v", + "nodeType": "VariableDeclaration", + "scope": 1864, + "src": "11926:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1784, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "11926:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1787, + "name": "r", + "nodeType": "VariableDeclaration", + "scope": 1864, + "src": "11935:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1786, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "11935:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1789, + "name": "s", + "nodeType": "VariableDeclaration", + "scope": 1864, + "src": "11946:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1788, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "11946:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11893:63:1" + }, + "returnParameters": { + "id": 1791, + "nodeType": "ParameterList", + "parameters": [], + "src": "11966:0:1" + }, + "scope": 2267, + "src": "11871:680:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1987, + "nodeType": "Block", + "src": "12978:941:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "id": 1881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1877, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "13002:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1876, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1733, + "src": "12996:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$2561_$", + "typeString": "function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)" + } + }, + "id": 1878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12996:17:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1879, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "13017:13:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$2561_$", + "typeString": "type(enum GovernorBravoDelegateStorageV1.ProposalState)" + } + }, + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Active", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13017:20:1", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + } + }, + "src": "12996:41:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a20766f74696e6720697320636c6f736564", + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13039:51:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4d8168be21aac620ed72791717aa2911167b316e34d177cc4b315ea45590cb98", + "typeString": "literal_string \"GovernorBravo::castVoteInternal: voting is closed\"" + }, + "value": "GovernorBravo::castVoteInternal: voting is closed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4d8168be21aac620ed72791717aa2911167b316e34d177cc4b315ea45590cb98", + "typeString": "literal_string \"GovernorBravo::castVoteInternal: voting is closed\"" + } + ], + "id": 1875, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "12988:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12988:103:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1884, + "nodeType": "ExpressionStatement", + "src": "12988:103:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 1888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1886, + "name": "support", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1870, + "src": "13109:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13120:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "13109:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a20696e76616c696420766f74652074797065", + "id": 1889, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13123:52:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_08ca01306f73add02bd237ec4eb9b88988c263b20bc18a865949156e713112d3", + "typeString": "literal_string \"GovernorBravo::castVoteInternal: invalid vote type\"" + }, + "value": "GovernorBravo::castVoteInternal: invalid vote type" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_08ca01306f73add02bd237ec4eb9b88988c263b20bc18a865949156e713112d3", + "typeString": "literal_string \"GovernorBravo::castVoteInternal: invalid vote type\"" + } + ], + "id": 1885, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "13101:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13101:75:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1891, + "nodeType": "ExpressionStatement", + "src": "13101:75:1" + }, + { + "assignments": [ + 1893 + ], + "declarations": [ + { + "constant": false, + "id": 1893, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 1987, + "src": "13186:25:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 1892, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2545, + "src": "13186:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1897, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1894, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "13214:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$2545_storage_$", + "typeString": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)" + } + }, + "id": 1896, + "indexExpression": { + "argumentTypes": null, + "id": 1895, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "13224:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13214:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13186:49:1" + }, + { + "assignments": [ + 1899 + ], + "declarations": [ + { + "constant": false, + "id": 1899, + "name": "receipt", + "nodeType": "VariableDeclaration", + "scope": 1987, + "src": "13245:23:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$2552_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Receipt" + }, + "typeName": { + "contractScope": null, + "id": 1898, + "name": "Receipt", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2552, + "src": "13245:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$2552_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Receipt" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1904, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1900, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1893, + "src": "13271:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1901, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "receipts", + "nodeType": "MemberAccess", + "referencedDeclaration": 2544, + "src": "13271:17:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Receipt_$2552_storage_$", + "typeString": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt storage ref)" + } + }, + "id": 1903, + "indexExpression": { + "argumentTypes": null, + "id": 1902, + "name": "voter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1866, + "src": "13289:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13271:24:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$2552_storage", + "typeString": "struct GovernorBravoDelegateStorageV1.Receipt storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13245:50:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1906, + "name": "receipt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1899, + "src": "13313:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$2552_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Receipt storage pointer" + } + }, + "id": 1907, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "hasVoted", + "nodeType": "MemberAccess", + "referencedDeclaration": 2547, + "src": "13313:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1908, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13333:5:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "13313:25:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a20766f74657220616c726561647920766f746564", + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13340:54:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4db4ad45458d858d12fec9cccfea17def9275e2163ec97403e3da078a04e1a11", + "typeString": "literal_string \"GovernorBravo::castVoteInternal: voter already voted\"" + }, + "value": "GovernorBravo::castVoteInternal: voter already voted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4db4ad45458d858d12fec9cccfea17def9275e2163ec97403e3da078a04e1a11", + "typeString": "literal_string \"GovernorBravo::castVoteInternal: voter already voted\"" + } + ], + "id": 1905, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "13305:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13305:90:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1912, + "nodeType": "ExpressionStatement", + "src": "13305:90:1" + }, + { + "assignments": [ + 1914 + ], + "declarations": [ + { + "constant": false, + "id": 1914, + "name": "votes", + "nodeType": "VariableDeclaration", + "scope": 1987, + "src": "13405:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 1913, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "13405:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1921, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1917, + "name": "voter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1866, + "src": "13439:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1918, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1893, + "src": "13446:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1919, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "startBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 2528, + "src": "13446:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1915, + "name": "comp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2500, + "src": "13420:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CompInterface_$2636", + "typeString": "contract CompInterface" + } + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getPriorVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2635, + "src": "13420:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$", + "typeString": "function (address,uint256) view external returns (uint96)" + } + }, + "id": 1920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13420:46:1", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13405:61:1" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 1924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1922, + "name": "support", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1870, + "src": "13481:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13492:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13481:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 1938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1936, + "name": "support", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1870, + "src": "13590:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1937, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13601:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13590:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 1952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1950, + "name": "support", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1870, + "src": "13691:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13702:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "13691:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1964, + "nodeType": "IfStatement", + "src": "13687:103:1", + "trueBody": { + "id": 1963, + "nodeType": "Block", + "src": "13705:85:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1953, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1893, + "src": "13719:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1955, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "abstainVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2536, + "src": "13719:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1957, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1893, + "src": "13750:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1958, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "abstainVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2536, + "src": "13750:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1959, + "name": "votes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1914, + "src": "13773:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 1956, + "name": "add256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2233, + "src": "13743:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13743:36:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13719:60:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1962, + "nodeType": "ExpressionStatement", + "src": "13719:60:1" + } + ] + } + }, + "id": 1965, + "nodeType": "IfStatement", + "src": "13586:204:1", + "trueBody": { + "id": 1949, + "nodeType": "Block", + "src": "13604:77:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1939, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1893, + "src": "13618:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1941, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "forVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2532, + "src": "13618:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1943, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1893, + "src": "13645:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1944, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "forVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2532, + "src": "13645:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1945, + "name": "votes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1914, + "src": "13664:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 1942, + "name": "add256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2233, + "src": "13638:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13638:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13618:52:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1948, + "nodeType": "ExpressionStatement", + "src": "13618:52:1" + } + ] + } + }, + "id": 1966, + "nodeType": "IfStatement", + "src": "13477:313:1", + "trueBody": { + "id": 1935, + "nodeType": "Block", + "src": "13495:85:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1925, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1893, + "src": "13509:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1927, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "againstVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2534, + "src": "13509:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1929, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1893, + "src": "13540:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer" + } + }, + "id": 1930, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "againstVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2534, + "src": "13540:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1931, + "name": "votes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1914, + "src": "13563:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 1928, + "name": "add256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2233, + "src": "13533:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13533:36:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13509:60:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1934, + "nodeType": "ExpressionStatement", + "src": "13509:60:1" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 1971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1967, + "name": "receipt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1899, + "src": "13800:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$2552_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Receipt storage pointer" + } + }, + "id": 1969, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "hasVoted", + "nodeType": "MemberAccess", + "referencedDeclaration": 2547, + "src": "13800:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13819:4:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "13800:23:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1972, + "nodeType": "ExpressionStatement", + "src": "13800:23:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1973, + "name": "receipt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1899, + "src": "13833:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$2552_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Receipt storage pointer" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "support", + "nodeType": "MemberAccess", + "referencedDeclaration": 2549, + "src": "13833:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1976, + "name": "support", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1870, + "src": "13851:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "13833:25:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 1978, + "nodeType": "ExpressionStatement", + "src": "13833:25:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1979, + "name": "receipt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1899, + "src": "13868:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$2552_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Receipt storage pointer" + } + }, + "id": 1981, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "votes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2551, + "src": "13868:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1982, + "name": "votes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1914, + "src": "13884:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "13868:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "id": 1984, + "nodeType": "ExpressionStatement", + "src": "13868:21:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1985, + "name": "votes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1914, + "src": "13907:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 1874, + "id": 1986, + "nodeType": "Return", + "src": "13900:12:1" + } + ] + }, + "documentation": "@notice Internal function that caries out voting logic\n@param voter The voter that is casting their vote\n@param proposalId The id of the proposal to vote on\n@param support The support value for the vote. 0=against, 1=for, 2=abstain\n@return The number of votes cast", + "id": 1988, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "castVoteInternal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1871, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1866, + "name": "voter", + "nodeType": "VariableDeclaration", + "scope": 1988, + "src": "12905:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1865, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12905:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1868, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 1988, + "src": "12920:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1867, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12920:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1870, + "name": "support", + "nodeType": "VariableDeclaration", + "scope": 1988, + "src": "12937:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1869, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "12937:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12904:47:1" + }, + "returnParameters": { + "id": 1874, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1873, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1988, + "src": "12970:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 1872, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "12970:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12969:8:1" + }, + "scope": 2267, + "src": "12879:1040:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2025, + "nodeType": "Block", + "src": "14115:377:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1994, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "14133:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14133:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1996, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2479, + "src": "14147:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "14133:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a5f736574566f74696e6744656c61793a2061646d696e206f6e6c79", + "id": 1998, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14154:44:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_279b08a3b3d49785c097a8d73d57a97d8e69c25d04ec90900db7349adf8b6746", + "typeString": "literal_string \"GovernorBravo::_setVotingDelay: admin only\"" + }, + "value": "GovernorBravo::_setVotingDelay: admin only" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_279b08a3b3d49785c097a8d73d57a97d8e69c25d04ec90900db7349adf8b6746", + "typeString": "literal_string \"GovernorBravo::_setVotingDelay: admin only\"" + } + ], + "id": 1993, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "14125:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14125:74:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2000, + "nodeType": "ExpressionStatement", + "src": "14125:74:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2002, + "name": "newVotingDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1990, + "src": "14217:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 2003, + "name": "MIN_VOTING_DELAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 983, + "src": "14235:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14217:34:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2005, + "name": "newVotingDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1990, + "src": "14255:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 2006, + "name": "MAX_VOTING_DELAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "14273:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14255:34:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14217:72:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a5f736574566f74696e6744656c61793a20696e76616c696420766f74696e672064656c6179", + "id": 2009, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14291:54:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5930fb0b93e8f9722b42028e35c6806f211165c68ad302a38cca85070de7f5ab", + "typeString": "literal_string \"GovernorBravo::_setVotingDelay: invalid voting delay\"" + }, + "value": "GovernorBravo::_setVotingDelay: invalid voting delay" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5930fb0b93e8f9722b42028e35c6806f211165c68ad302a38cca85070de7f5ab", + "typeString": "literal_string \"GovernorBravo::_setVotingDelay: invalid voting delay\"" + } + ], + "id": 2001, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "14209:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14209:137:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2011, + "nodeType": "ExpressionStatement", + "src": "14209:137:1" + }, + { + "assignments": [ + 2013 + ], + "declarations": [ + { + "constant": false, + "id": 2013, + "name": "oldVotingDelay", + "nodeType": "VariableDeclaration", + "scope": 2025, + "src": "14356:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2012, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14356:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2015, + "initialValue": { + "argumentTypes": null, + "id": 2014, + "name": "votingDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2488, + "src": "14378:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14356:33:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 2018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2016, + "name": "votingDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2488, + "src": "14399:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2017, + "name": "newVotingDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1990, + "src": "14413:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14399:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2019, + "nodeType": "ExpressionStatement", + "src": "14399:28:1" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2021, + "name": "oldVotingDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2013, + "src": "14458:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2022, + "name": "votingDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2488, + "src": "14473:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2020, + "name": "VotingDelaySet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2446, + "src": "14443:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 2023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14443:42:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2024, + "nodeType": "EmitStatement", + "src": "14438:47:1" + } + ] + }, + "documentation": "@notice Admin function for setting the voting delay\n@param newVotingDelay new voting delay, in blocks", + "id": 2026, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setVotingDelay", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1990, + "name": "newVotingDelay", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "14085:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1989, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14085:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14084:21:1" + }, + "returnParameters": { + "id": 1992, + "nodeType": "ParameterList", + "parameters": [], + "src": "14115:0:1" + }, + "scope": 2267, + "src": "14060:432:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2063, + "nodeType": "Block", + "src": "14693:392:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2032, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "14711:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14711:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2034, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2479, + "src": "14725:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "14711:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a5f736574566f74696e67506572696f643a2061646d696e206f6e6c79", + "id": 2036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14732:45:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1f07f8871aca44be299752a815be880788c18fabad49da5fd1ad2906b62a9e40", + "typeString": "literal_string \"GovernorBravo::_setVotingPeriod: admin only\"" + }, + "value": "GovernorBravo::_setVotingPeriod: admin only" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1f07f8871aca44be299752a815be880788c18fabad49da5fd1ad2906b62a9e40", + "typeString": "literal_string \"GovernorBravo::_setVotingPeriod: admin only\"" + } + ], + "id": 2031, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "14703:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14703:75:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2038, + "nodeType": "ExpressionStatement", + "src": "14703:75:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2040, + "name": "newVotingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2028, + "src": "14796:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 2041, + "name": "MIN_VOTING_PERIOD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 977, + "src": "14815:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14796:36:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2043, + "name": "newVotingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2028, + "src": "14836:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 2044, + "name": "MAX_VOTING_PERIOD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 980, + "src": "14855:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14836:36:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14796:76:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a5f736574566f74696e67506572696f643a20696e76616c696420766f74696e6720706572696f64", + "id": 2047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14874:56:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4bf2bad5a8c282a2af486892899755bae3e0449b79e9da24a0b3247a5e8abe21", + "typeString": "literal_string \"GovernorBravo::_setVotingPeriod: invalid voting period\"" + }, + "value": "GovernorBravo::_setVotingPeriod: invalid voting period" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4bf2bad5a8c282a2af486892899755bae3e0449b79e9da24a0b3247a5e8abe21", + "typeString": "literal_string \"GovernorBravo::_setVotingPeriod: invalid voting period\"" + } + ], + "id": 2039, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "14788:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14788:143:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2049, + "nodeType": "ExpressionStatement", + "src": "14788:143:1" + }, + { + "assignments": [ + 2051 + ], + "declarations": [ + { + "constant": false, + "id": 2051, + "name": "oldVotingPeriod", + "nodeType": "VariableDeclaration", + "scope": 2063, + "src": "14941:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2050, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14941:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2053, + "initialValue": { + "argumentTypes": null, + "id": 2052, + "name": "votingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2490, + "src": "14964:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14941:35:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2054, + "name": "votingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2490, + "src": "14986:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2055, + "name": "newVotingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2028, + "src": "15001:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14986:30:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2057, + "nodeType": "ExpressionStatement", + "src": "14986:30:1" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2059, + "name": "oldVotingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2051, + "src": "15048:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2060, + "name": "votingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2490, + "src": "15065:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2058, + "name": "VotingPeriodSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2452, + "src": "15032:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 2061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15032:46:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2062, + "nodeType": "EmitStatement", + "src": "15027:51:1" + } + ] + }, + "documentation": "@notice Admin function for setting the voting period\n@param newVotingPeriod new voting period, in blocks", + "id": 2064, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setVotingPeriod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2029, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2028, + "name": "newVotingPeriod", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "14662:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2027, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14662:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14661:22:1" + }, + "returnParameters": { + "id": 2030, + "nodeType": "ParameterList", + "parameters": [], + "src": "14693:0:1" + }, + "scope": 2267, + "src": "14636:449:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2101, + "nodeType": "Block", + "src": "15373:462:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2070, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "15391:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15391:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2072, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2479, + "src": "15405:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15391:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a5f73657450726f706f73616c5468726573686f6c643a2061646d696e206f6e6c79", + "id": 2074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15412:50:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3c4c3201b4acfac7c8c7f4c0045bc3cdf30555d8f8514b4ca68ba5318610f5e", + "typeString": "literal_string \"GovernorBravo::_setProposalThreshold: admin only\"" + }, + "value": "GovernorBravo::_setProposalThreshold: admin only" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3c4c3201b4acfac7c8c7f4c0045bc3cdf30555d8f8514b4ca68ba5318610f5e", + "typeString": "literal_string \"GovernorBravo::_setProposalThreshold: admin only\"" + } + ], + "id": 2069, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "15383:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15383:80:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2076, + "nodeType": "ExpressionStatement", + "src": "15383:80:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2078, + "name": "newProposalThreshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2066, + "src": "15481:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 2079, + "name": "MIN_PROPOSAL_THRESHOLD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 971, + "src": "15505:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15481:46:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2081, + "name": "newProposalThreshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2066, + "src": "15531:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 2082, + "name": "MAX_PROPOSAL_THRESHOLD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 974, + "src": "15555:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15531:46:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15481:96:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a5f73657450726f706f73616c5468726573686f6c643a20696e76616c69642070726f706f73616c207468726573686f6c64", + "id": 2085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15579:66:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_75a74689ff442834d31e42dd6d27818a23128b0ddaaf74dfd863f8148920cbd3", + "typeString": "literal_string \"GovernorBravo::_setProposalThreshold: invalid proposal threshold\"" + }, + "value": "GovernorBravo::_setProposalThreshold: invalid proposal threshold" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_75a74689ff442834d31e42dd6d27818a23128b0ddaaf74dfd863f8148920cbd3", + "typeString": "literal_string \"GovernorBravo::_setProposalThreshold: invalid proposal threshold\"" + } + ], + "id": 2077, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "15473:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15473:173:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2087, + "nodeType": "ExpressionStatement", + "src": "15473:173:1" + }, + { + "assignments": [ + 2089 + ], + "declarations": [ + { + "constant": false, + "id": 2089, + "name": "oldProposalThreshold", + "nodeType": "VariableDeclaration", + "scope": 2101, + "src": "15656:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2088, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15656:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2091, + "initialValue": { + "argumentTypes": null, + "id": 2090, + "name": "proposalThreshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2492, + "src": "15684:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15656:45:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 2094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2092, + "name": "proposalThreshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2492, + "src": "15711:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2093, + "name": "newProposalThreshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2066, + "src": "15731:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15711:40:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2095, + "nodeType": "ExpressionStatement", + "src": "15711:40:1" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2097, + "name": "oldProposalThreshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2089, + "src": "15788:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2098, + "name": "proposalThreshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2492, + "src": "15810:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2096, + "name": "ProposalThresholdSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2464, + "src": "15767:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 2099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15767:61:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2100, + "nodeType": "EmitStatement", + "src": "15762:66:1" + } + ] + }, + "documentation": "@notice Admin function for setting the proposal threshold\n@dev newProposalThreshold must be greater than the hardcoded min\n@param newProposalThreshold new proposal threshold", + "id": 2102, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setProposalThreshold", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2067, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2066, + "name": "newProposalThreshold", + "nodeType": "VariableDeclaration", + "scope": 2102, + "src": "15337:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2065, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15337:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15336:27:1" + }, + "returnParameters": { + "id": 2068, + "nodeType": "ParameterList", + "parameters": [], + "src": "15373:0:1" + }, + "scope": 2267, + "src": "15306:529:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2133, + "nodeType": "Block", + "src": "16060:280:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2106, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "16078:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16078:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2108, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2479, + "src": "16092:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "16078:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a5f696e6974696174653a2061646d696e206f6e6c79", + "id": 2110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16099:38:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c71cb3e7fc78df5497c78b1de8f5dd56ad9be94f8e673bd31105debcc4940e0c", + "typeString": "literal_string \"GovernorBravo::_initiate: admin only\"" + }, + "value": "GovernorBravo::_initiate: admin only" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c71cb3e7fc78df5497c78b1de8f5dd56ad9be94f8e673bd31105debcc4940e0c", + "typeString": "literal_string \"GovernorBravo::_initiate: admin only\"" + } + ], + "id": 2105, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "16070:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16070:68:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2112, + "nodeType": "ExpressionStatement", + "src": "16070:68:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2114, + "name": "initialProposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2494, + "src": "16156:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16177:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16156:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a3a5f696e6974696174653a2063616e206f6e6c7920696e697469617465206f6e6365", + "id": 2117, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16180:50:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_928739bbf55fe0185a70df55366e78160f0fe2084090e539cc66d62f04507e17", + "typeString": "literal_string \"GovernorBravo::_initiate: can only initiate once\"" + }, + "value": "GovernorBravo::_initiate: can only initiate once" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_928739bbf55fe0185a70df55366e78160f0fe2084090e539cc66d62f04507e17", + "typeString": "literal_string \"GovernorBravo::_initiate: can only initiate once\"" + } + ], + "id": 2113, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "16148:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16148:83:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2119, + "nodeType": "ExpressionStatement", + "src": "16148:83:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 2122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2120, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2496, + "src": "16241:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 2121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16257:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "16241:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2123, + "nodeType": "ExpressionStatement", + "src": "16241:17:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 2126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2124, + "name": "initialProposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2494, + "src": "16268:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2125, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2496, + "src": "16288:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16268:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2127, + "nodeType": "ExpressionStatement", + "src": "16268:33:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2128, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "16311:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + } + }, + "id": 2130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "acceptAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 2575, + "src": "16311:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 2131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16311:22:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2132, + "nodeType": "ExpressionStatement", + "src": "16311:22:1" + } + ] + }, + "documentation": "@notice Initiate the GovernorBravo contract\n@dev Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count", + "id": 2134, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_initiate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2103, + "nodeType": "ParameterList", + "parameters": [], + "src": "16048:2:1" + }, + "returnParameters": { + "id": 2104, + "nodeType": "ParameterList", + "parameters": [], + "src": "16060:0:1" + }, + "scope": 2267, + "src": "16030:310:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2160, + "nodeType": "Block", + "src": "16718:461:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2140, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "16768:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16768:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2142, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2479, + "src": "16782:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "16768:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a5f73657450656e64696e6741646d696e3a2061646d696e206f6e6c79", + "id": 2144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16789:44:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_15b86236d8e6aaae4fbee852729fd208d60cf2b5c9f6ec4ea2291e707cb07995", + "typeString": "literal_string \"GovernorBravo:_setPendingAdmin: admin only\"" + }, + "value": "GovernorBravo:_setPendingAdmin: admin only" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_15b86236d8e6aaae4fbee852729fd208d60cf2b5c9f6ec4ea2291e707cb07995", + "typeString": "literal_string \"GovernorBravo:_setPendingAdmin: admin only\"" + } + ], + "id": 2139, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "16760:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16760:74:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2146, + "nodeType": "ExpressionStatement", + "src": "16760:74:1" + }, + { + "assignments": [ + 2148 + ], + "declarations": [ + { + "constant": false, + "id": 2148, + "name": "oldPendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 2160, + "src": "16905:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2147, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16905:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2150, + "initialValue": { + "argumentTypes": null, + "id": 2149, + "name": "pendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2481, + "src": "16931:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16905:38:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 2153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2151, + "name": "pendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2481, + "src": "17011:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2152, + "name": "newPendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2136, + "src": "17026:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17011:30:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2154, + "nodeType": "ExpressionStatement", + "src": "17011:30:1" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2156, + "name": "oldPendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "17139:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2157, + "name": "newPendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2136, + "src": "17156:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2155, + "name": "NewPendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2470, + "src": "17123:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 2158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17123:49:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2159, + "nodeType": "EmitStatement", + "src": "17118:54:1" + } + ] + }, + "documentation": "@notice Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\n@dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\n@param newPendingAdmin New pending admin.", + "id": 2161, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setPendingAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2136, + "name": "newPendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 2161, + "src": "16684:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2135, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16684:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16683:25:1" + }, + "returnParameters": { + "id": 2138, + "nodeType": "ParameterList", + "parameters": [], + "src": "16718:0:1" + }, + "scope": 2267, + "src": "16658:521:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2207, + "nodeType": "Block", + "src": "17395:588:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2165, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "17485:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "17485:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2167, + "name": "pendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2481, + "src": "17499:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17485:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 2174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2169, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "17515:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "17515:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17537:1:1", + "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": 2171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17529:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17529:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17515:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "17485:54:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f3a5f61636365707441646d696e3a2070656e64696e672061646d696e206f6e6c79", + "id": 2176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17541:48:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a193c43d3fcb6bad7dee9cd0aee4d22b57650045fda67e20f8280b4ef9e1a8a8", + "typeString": "literal_string \"GovernorBravo:_acceptAdmin: pending admin only\"" + }, + "value": "GovernorBravo:_acceptAdmin: pending admin only" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a193c43d3fcb6bad7dee9cd0aee4d22b57650045fda67e20f8280b4ef9e1a8a8", + "typeString": "literal_string \"GovernorBravo:_acceptAdmin: pending admin only\"" + } + ], + "id": 2164, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "17477:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:113:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2178, + "nodeType": "ExpressionStatement", + "src": "17477:113:1" + }, + { + "assignments": [ + 2180 + ], + "declarations": [ + { + "constant": false, + "id": 2180, + "name": "oldAdmin", + "nodeType": "VariableDeclaration", + "scope": 2207, + "src": "17653:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2179, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17653:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2182, + "initialValue": { + "argumentTypes": null, + "id": 2181, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2479, + "src": "17672:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17653:24:1" + }, + { + "assignments": [ + 2184 + ], + "declarations": [ + { + "constant": false, + "id": 2184, + "name": "oldPendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 2207, + "src": "17687:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2183, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17687:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2186, + "initialValue": { + "argumentTypes": null, + "id": 2185, + "name": "pendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2481, + "src": "17713:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17687:38:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 2189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2187, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2479, + "src": "17783:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2188, + "name": "pendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2481, + "src": "17791:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17783:20:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2190, + "nodeType": "ExpressionStatement", + "src": "17783:20:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 2195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2191, + "name": "pendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2481, + "src": "17849:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17872:1:1", + "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": 2192, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17864:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17864:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17849:25:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2196, + "nodeType": "ExpressionStatement", + "src": "17849:25:1" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2198, + "name": "oldAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2180, + "src": "17899:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2199, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2479, + "src": "17909:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2197, + "name": "NewAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2476, + "src": "17890:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 2200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17890:25:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2201, + "nodeType": "EmitStatement", + "src": "17885:30:1" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2203, + "name": "oldPendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2184, + "src": "17946:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2204, + "name": "pendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2481, + "src": "17963:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2202, + "name": "NewPendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2470, + "src": "17930:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17930:46:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2206, + "nodeType": "EmitStatement", + "src": "17925:51:1" + } + ] + }, + "documentation": "@notice Accepts transfer of admin rights. msg.sender must be pendingAdmin\n@dev Admin function for pending admin to accept role and update admin", + "id": 2208, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_acceptAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2162, + "nodeType": "ParameterList", + "parameters": [], + "src": "17383:2:1" + }, + "returnParameters": { + "id": 2163, + "nodeType": "ParameterList", + "parameters": [], + "src": "17395:0:1" + }, + "scope": 2267, + "src": "17362:621:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2232, + "nodeType": "Block", + "src": "18056:95:1", + "statements": [ + { + "assignments": [ + 2218 + ], + "declarations": [ + { + "constant": false, + "id": 2218, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 2232, + "src": "18066:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2217, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18066:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2222, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2219, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2210, + "src": "18075:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 2220, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2212, + "src": "18079:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18075:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18066:14:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2224, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2218, + "src": "18098:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 2225, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2210, + "src": "18103:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18098:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6164646974696f6e206f766572666c6f77", + "id": 2227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18106:19:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8c0d96e929759368d857f737222dcb6a5217a09dbc29c3e61addc531fdea00f5", + "typeString": "literal_string \"addition overflow\"" + }, + "value": "addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8c0d96e929759368d857f737222dcb6a5217a09dbc29c3e61addc531fdea00f5", + "typeString": "literal_string \"addition overflow\"" + } + ], + "id": 2223, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "18090:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18090:36:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2229, + "nodeType": "ExpressionStatement", + "src": "18090:36:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 2230, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2218, + "src": "18143:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2216, + "id": 2231, + "nodeType": "Return", + "src": "18136:8:1" + } + ] + }, + "documentation": null, + "id": 2233, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add256", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2210, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 2233, + "src": "18005:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2209, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18005:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2212, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 2233, + "src": "18016:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18004:22:1" + }, + "returnParameters": { + "id": 2216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2215, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2233, + "src": "18050:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2214, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18050:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18049:6:1" + }, + "scope": 2267, + "src": "17989:162:1", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2253, + "nodeType": "Block", + "src": "18224:79:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2243, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2237, + "src": "18242:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 2244, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2235, + "src": "18247:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18242:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "7375627472616374696f6e20756e646572666c6f77", + "id": 2246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18250:23:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f22f6b3017af2aff30fb71d5e8f8adc6cd3022431e6fc88c01d6d8b2adb30f31", + "typeString": "literal_string \"subtraction underflow\"" + }, + "value": "subtraction underflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f22f6b3017af2aff30fb71d5e8f8adc6cd3022431e6fc88c01d6d8b2adb30f31", + "typeString": "literal_string \"subtraction underflow\"" + } + ], + "id": 2242, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "18234:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18234:40:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2248, + "nodeType": "ExpressionStatement", + "src": "18234:40:1" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2249, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2235, + "src": "18291:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 2250, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2237, + "src": "18295:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18291:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2241, + "id": 2252, + "nodeType": "Return", + "src": "18284:12:1" + } + ] + }, + "documentation": null, + "id": 2254, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub256", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2235, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 2254, + "src": "18173:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2234, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18173:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2237, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 2254, + "src": "18184:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2236, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18184:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18172:22:1" + }, + "returnParameters": { + "id": 2241, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2240, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2254, + "src": "18218:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2239, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18218:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18217:6:1" + }, + "scope": 2267, + "src": "18157:146:1", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2265, + "nodeType": "Block", + "src": "18368:95:1", + "statements": [ + { + "assignments": [ + 2260 + ], + "declarations": [ + { + "constant": false, + "id": 2260, + "name": "chainId", + "nodeType": "VariableDeclaration", + "scope": 2265, + "src": "18378:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2259, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18378:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2261, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "18378:12:1" + }, + { + "externalReferences": [ + { + "chainId": { + "declaration": 2260, + "isOffset": false, + "isSlot": false, + "src": "18411:7:1", + "valueSize": 1 + } + } + ], + "id": 2262, + "nodeType": "InlineAssembly", + "operations": "{ chainId := chainid() }", + "src": "18400:33:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 2263, + "name": "chainId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2260, + "src": "18449:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2258, + "id": 2264, + "nodeType": "Return", + "src": "18442:14:1" + } + ] + }, + "documentation": null, + "id": 2266, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getChainIdInternal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2255, + "nodeType": "ParameterList", + "parameters": [], + "src": "18336:2:1" + }, + "returnParameters": { + "id": 2258, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2257, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2266, + "src": "18362:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2256, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18362:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18361:6:1" + }, + "scope": 2267, + "src": "18309:154:1", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 2268, + "src": "101:18364:1" + } + ], + "src": "0:18465:1" + }, + "legacyAST": { + "attributes": { + "absolutePath": "project:/contracts/GovernorBravoDelegate.sol", + "exportedSymbols": { + "GovernorBravoDelegate": [ + 2267 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.5", + ".16" + ] + }, + "id": 959, + "name": "PragmaDirective", + "src": "0:24:1" + }, + { + "attributes": { + "literals": [ + "experimental", + "ABIEncoderV2" + ] + }, + "id": 960, + "name": "PragmaDirective", + "src": "25:33:1" + }, + { + "attributes": { + "SourceUnit": 2637, + "absolutePath": "project:/contracts/GovernorBravoInterfaces.sol", + "file": "./GovernorBravoInterfaces.sol", + "scope": 2268, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 961, + "name": "ImportDirective", + "src": "60:39:1" + }, + { + "attributes": { + "contractDependencies": [ + 2477, + 2484, + 2562 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2267, + 2477, + 2562, + 2484 + ], + "name": "GovernorBravoDelegate", + "scope": 2268 + }, + "children": [ + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "GovernorBravoDelegateStorageV1", + "referencedDeclaration": 2562, + "type": "contract GovernorBravoDelegateStorageV1" + }, + "id": 962, + "name": "UserDefinedTypeName", + "src": "135:30:1" + } + ], + "id": 963, + "name": "InheritanceSpecifier", + "src": "135:30:1" + }, + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "GovernorBravoEvents", + "referencedDeclaration": 2477, + "type": "contract GovernorBravoEvents" + }, + "id": 964, + "name": "UserDefinedTypeName", + "src": "167:19:1" + } + ], + "id": 965, + "name": "InheritanceSpecifier", + "src": "167:19:1" + }, + { + "attributes": { + "constant": true, + "name": "name", + "scope": 2267, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 966, + "name": "ElementaryTypeName", + "src": "236:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "436f6d706f756e6420476f7665726e6f7220427261766f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Compound Governor Bravo\"", + "value": "Compound Governor Bravo" + }, + "id": 967, + "name": "Literal", + "src": "266:25:1" + } + ], + "id": 968, + "name": "VariableDeclaration", + "src": "236:55:1" + }, + { + "attributes": { + "constant": true, + "name": "MIN_PROPOSAL_THRESHOLD", + "scope": 2267, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 969, + "name": "ElementaryTypeName", + "src": "353:4:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "3530303030653138", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 50000000000000000000000", + "value": "50000e18" + }, + "id": 970, + "name": "Literal", + "src": "399:8:1" + } + ], + "id": 971, + "name": "VariableDeclaration", + "src": "353:54:1" + }, + { + "attributes": { + "constant": true, + "name": "MAX_PROPOSAL_THRESHOLD", + "scope": 2267, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 972, + "name": "ElementaryTypeName", + "src": "484:4:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "313030303030653138", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 100000000000000000000000", + "value": "100000e18" + }, + "id": 973, + "name": "Literal", + "src": "530:9:1" + } + ], + "id": 974, + "name": "VariableDeclaration", + "src": "484:55:1" + }, + { + "attributes": { + "constant": true, + "name": "MIN_VOTING_PERIOD", + "scope": 2267, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 975, + "name": "ElementaryTypeName", + "src": "611:4:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 976, + "name": "Literal", + "src": "652:1:1" + } + ], + "id": 977, + "name": "VariableDeclaration", + "src": "611:42:1" + }, + { + "attributes": { + "constant": true, + "name": "MAX_VOTING_PERIOD", + "scope": 2267, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 978, + "name": "ElementaryTypeName", + "src": "726:4:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "3830363430", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 80640", + "value": "80640" + }, + "id": 979, + "name": "Literal", + "src": "767:5:1" + } + ], + "id": 980, + "name": "VariableDeclaration", + "src": "726:46:1" + }, + { + "attributes": { + "constant": true, + "name": "MIN_VOTING_DELAY", + "scope": 2267, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 981, + "name": "ElementaryTypeName", + "src": "841:4:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 982, + "name": "Literal", + "src": "881:1:1" + } + ], + "id": 983, + "name": "VariableDeclaration", + "src": "841:41:1" + }, + { + "attributes": { + "constant": true, + "name": "MAX_VOTING_DELAY", + "scope": 2267, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 984, + "name": "ElementaryTypeName", + "src": "934:4:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "3430333230", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 40320", + "value": "40320" + }, + "id": 985, + "name": "Literal", + "src": "974:5:1" + } + ], + "id": 986, + "name": "VariableDeclaration", + "src": "934:45:1" + }, + { + "attributes": { + "constant": true, + "name": "quorumVotes", + "scope": 2267, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 987, + "name": "ElementaryTypeName", + "src": "1134:4:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "343030303030653138", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 400000000000000000000000", + "value": "400000e18" + }, + "id": 988, + "name": "Literal", + "src": "1169:9:1" + } + ], + "id": 989, + "name": "VariableDeclaration", + "src": "1134:44:1" + }, + { + "attributes": { + "constant": true, + "name": "proposalMaxOperations", + "scope": 2267, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 990, + "name": "ElementaryTypeName", + "src": "1290:4:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 991, + "name": "Literal", + "src": "1335:2:1" + } + ], + "id": 992, + "name": "VariableDeclaration", + "src": "1290:47:1" + }, + { + "attributes": { + "constant": true, + "name": "DOMAIN_TYPEHASH", + "scope": 2267, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes32", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 993, + "name": "ElementaryTypeName", + "src": "1421:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866", + "typeString": "literal_string \"EIP712Domain(string name,uint256 chainId,address verifyingContract)\"" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3349, + "type": "function (bytes memory) pure returns (bytes32)", + "value": "keccak256" + }, + "id": 994, + "name": "Identifier", + "src": "1463:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"EIP712Domain(string name,uint256 chainId,address verifyingContract)\"", + "value": "EIP712Domain(string name,uint256 chainId,address verifyingContract)" + }, + "id": 995, + "name": "Literal", + "src": "1473:69:1" + } + ], + "id": 996, + "name": "FunctionCall", + "src": "1463:80:1" + } + ], + "id": 997, + "name": "VariableDeclaration", + "src": "1421:122:1" + }, + { + "attributes": { + "constant": true, + "name": "BALLOT_TYPEHASH", + "scope": 2267, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes32", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 998, + "name": "ElementaryTypeName", + "src": "1630:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f", + "typeString": "literal_string \"Ballot(uint256 proposalId,uint8 support)\"" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3349, + "type": "function (bytes memory) pure returns (bytes32)", + "value": "keccak256" + }, + "id": 999, + "name": "Identifier", + "src": "1672:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "42616c6c6f742875696e743235362070726f706f73616c49642c75696e743820737570706f727429", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Ballot(uint256 proposalId,uint8 support)\"", + "value": "Ballot(uint256 proposalId,uint8 support)" + }, + "id": 1000, + "name": "Literal", + "src": "1682:42:1" + } + ], + "id": 1001, + "name": "FunctionCall", + "src": "1672:53:1" + } + ], + "id": 1002, + "name": "VariableDeclaration", + "src": "1630:95:1" + }, + { + "attributes": { + "documentation": "@notice Used to initialize the contract during delegator contructor\n@param timelock_ The address of the Timelock\n@param comp_ The address of the COMP token\n@param votingPeriod_ The initial voting period\n@param votingDelay_ The initial voting delay\n@param proposalThreshold_ The initial proposal threshold", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "initialize", + "scope": 2267, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "timelock_", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1003, + "name": "ElementaryTypeName", + "src": "2122:7:1" + } + ], + "id": 1004, + "name": "VariableDeclaration", + "src": "2122:17:1" + }, + { + "attributes": { + "constant": false, + "name": "comp_", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1005, + "name": "ElementaryTypeName", + "src": "2141:7:1" + } + ], + "id": 1006, + "name": "VariableDeclaration", + "src": "2141:13:1" + }, + { + "attributes": { + "constant": false, + "name": "votingPeriod_", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1007, + "name": "ElementaryTypeName", + "src": "2156:4:1" + } + ], + "id": 1008, + "name": "VariableDeclaration", + "src": "2156:18:1" + }, + { + "attributes": { + "constant": false, + "name": "votingDelay_", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1009, + "name": "ElementaryTypeName", + "src": "2176:4:1" + } + ], + "id": 1010, + "name": "VariableDeclaration", + "src": "2176:17:1" + }, + { + "attributes": { + "constant": false, + "name": "proposalThreshold_", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1011, + "name": "ElementaryTypeName", + "src": "2195:4:1" + } + ], + "id": 1012, + "name": "VariableDeclaration", + "src": "2195:23:1" + } + ], + "id": 1013, + "name": "ParameterList", + "src": "2121:98:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1014, + "name": "ParameterList", + "src": "2227:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_151f6261f1c5890955ee36f5491405733a50f8dbfd3ed20f67657ca07cf1bd97", + "typeString": "literal_string \"GovernorBravo::initialize: can only initialize once\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1015, + "name": "Identifier", + "src": "2237:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 1016, + "name": "ElementaryTypeNameExpression", + "src": "2245:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "contract TimelockInterface", + "value": "timelock" + }, + "id": 1017, + "name": "Identifier", + "src": "2253:8:1" + } + ], + "id": 1018, + "name": "FunctionCall", + "src": "2245:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 1019, + "name": "ElementaryTypeNameExpression", + "src": "2266:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1020, + "name": "Literal", + "src": "2274:1:1" + } + ], + "id": 1021, + "name": "FunctionCall", + "src": "2266:10:1" + } + ], + "id": 1022, + "name": "BinaryOperation", + "src": "2245:31:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a696e697469616c697a653a2063616e206f6e6c7920696e697469616c697a65206f6e6365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::initialize: can only initialize once\"", + "value": "GovernorBravo::initialize: can only initialize once" + }, + "id": 1023, + "name": "Literal", + "src": "2278:53:1" + } + ], + "id": 1024, + "name": "FunctionCall", + "src": "2237:95:1" + } + ], + "id": 1025, + "name": "ExpressionStatement", + "src": "2237:95:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6e47288757825adad4754037a004a97a318622f53744b99fe46d86485d9a8b20", + "typeString": "literal_string \"GovernorBravo::initialize: admin only\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1026, + "name": "Identifier", + "src": "2342:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 1027, + "name": "Identifier", + "src": "2350:3:1" + } + ], + "id": 1028, + "name": "MemberAccess", + "src": "2350:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2479, + "type": "address", + "value": "admin" + }, + "id": 1029, + "name": "Identifier", + "src": "2364:5:1" + } + ], + "id": 1030, + "name": "BinaryOperation", + "src": "2350:19:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a696e697469616c697a653a2061646d696e206f6e6c79", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::initialize: admin only\"", + "value": "GovernorBravo::initialize: admin only" + }, + "id": 1031, + "name": "Literal", + "src": "2371:39:1" + } + ], + "id": 1032, + "name": "FunctionCall", + "src": "2342:69:1" + } + ], + "id": 1033, + "name": "ExpressionStatement", + "src": "2342:69:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_21e23966aafb704889545eb5cd83af6490f12bdafb7ee5c7f4405649e923a2c9", + "typeString": "literal_string \"GovernorBravo::initialize: invalid timelock address\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1034, + "name": "Identifier", + "src": "2421:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1004, + "type": "address", + "value": "timelock_" + }, + "id": 1035, + "name": "Identifier", + "src": "2429:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 1036, + "name": "ElementaryTypeNameExpression", + "src": "2442:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1037, + "name": "Literal", + "src": "2450:1:1" + } + ], + "id": 1038, + "name": "FunctionCall", + "src": "2442:10:1" + } + ], + "id": 1039, + "name": "BinaryOperation", + "src": "2429:23:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c69642074696d656c6f636b2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::initialize: invalid timelock address\"", + "value": "GovernorBravo::initialize: invalid timelock address" + }, + "id": 1040, + "name": "Literal", + "src": "2454:53:1" + } + ], + "id": 1041, + "name": "FunctionCall", + "src": "2421:87:1" + } + ], + "id": 1042, + "name": "ExpressionStatement", + "src": "2421:87:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a53e09c70c138684f35438d4b624aff691fb02a7561cdbba2e712fd62109d12b", + "typeString": "literal_string \"GovernorBravo::initialize: invalid comp address\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1043, + "name": "Identifier", + "src": "2518:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1006, + "type": "address", + "value": "comp_" + }, + "id": 1044, + "name": "Identifier", + "src": "2526:5:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 1045, + "name": "ElementaryTypeNameExpression", + "src": "2535:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1046, + "name": "Literal", + "src": "2543:1:1" + } + ], + "id": 1047, + "name": "FunctionCall", + "src": "2535:10:1" + } + ], + "id": 1048, + "name": "BinaryOperation", + "src": "2526:19:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c696420636f6d702061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::initialize: invalid comp address\"", + "value": "GovernorBravo::initialize: invalid comp address" + }, + "id": 1049, + "name": "Literal", + "src": "2547:49:1" + } + ], + "id": 1050, + "name": "FunctionCall", + "src": "2518:79:1" + } + ], + "id": 1051, + "name": "ExpressionStatement", + "src": "2518:79:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e9e5615425b0cd9c2cebf179c241e8f17014c8af68e810515d55661f48622fdd", + "typeString": "literal_string \"GovernorBravo::initialize: invalid voting period\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1052, + "name": "Identifier", + "src": "2607:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "&&", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1008, + "type": "uint256", + "value": "votingPeriod_" + }, + "id": 1053, + "name": "Identifier", + "src": "2615:13:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 977, + "type": "uint256", + "value": "MIN_VOTING_PERIOD" + }, + "id": 1054, + "name": "Identifier", + "src": "2632:17:1" + } + ], + "id": 1055, + "name": "BinaryOperation", + "src": "2615:34:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1008, + "type": "uint256", + "value": "votingPeriod_" + }, + "id": 1056, + "name": "Identifier", + "src": "2653:13:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 980, + "type": "uint256", + "value": "MAX_VOTING_PERIOD" + }, + "id": 1057, + "name": "Identifier", + "src": "2670:17:1" + } + ], + "id": 1058, + "name": "BinaryOperation", + "src": "2653:34:1" + } + ], + "id": 1059, + "name": "BinaryOperation", + "src": "2615:72:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c696420766f74696e6720706572696f64", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::initialize: invalid voting period\"", + "value": "GovernorBravo::initialize: invalid voting period" + }, + "id": 1060, + "name": "Literal", + "src": "2689:50:1" + } + ], + "id": 1061, + "name": "FunctionCall", + "src": "2607:133:1" + } + ], + "id": 1062, + "name": "ExpressionStatement", + "src": "2607:133:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_63a531af56d655db3f73e61eec02c446a787a3af7d8ddcb2a0b9674a780913f1", + "typeString": "literal_string \"GovernorBravo::initialize: invalid voting delay\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1063, + "name": "Identifier", + "src": "2750:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "&&", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1010, + "type": "uint256", + "value": "votingDelay_" + }, + "id": 1064, + "name": "Identifier", + "src": "2758:12:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 983, + "type": "uint256", + "value": "MIN_VOTING_DELAY" + }, + "id": 1065, + "name": "Identifier", + "src": "2774:16:1" + } + ], + "id": 1066, + "name": "BinaryOperation", + "src": "2758:32:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1010, + "type": "uint256", + "value": "votingDelay_" + }, + "id": 1067, + "name": "Identifier", + "src": "2794:12:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 986, + "type": "uint256", + "value": "MAX_VOTING_DELAY" + }, + "id": 1068, + "name": "Identifier", + "src": "2810:16:1" + } + ], + "id": 1069, + "name": "BinaryOperation", + "src": "2794:32:1" + } + ], + "id": 1070, + "name": "BinaryOperation", + "src": "2758:68:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c696420766f74696e672064656c6179", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::initialize: invalid voting delay\"", + "value": "GovernorBravo::initialize: invalid voting delay" + }, + "id": 1071, + "name": "Literal", + "src": "2828:49:1" + } + ], + "id": 1072, + "name": "FunctionCall", + "src": "2750:128:1" + } + ], + "id": 1073, + "name": "ExpressionStatement", + "src": "2750:128:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_59c58ede7ed2bbd6490c4678c3aaaf17f6c50b4ac911824783dceb923ac6e8dc", + "typeString": "literal_string \"GovernorBravo::initialize: invalid proposal threshold\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1074, + "name": "Identifier", + "src": "2888:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "&&", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1012, + "type": "uint256", + "value": "proposalThreshold_" + }, + "id": 1075, + "name": "Identifier", + "src": "2896:18:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 971, + "type": "uint256", + "value": "MIN_PROPOSAL_THRESHOLD" + }, + "id": 1076, + "name": "Identifier", + "src": "2918:22:1" + } + ], + "id": 1077, + "name": "BinaryOperation", + "src": "2896:44:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1012, + "type": "uint256", + "value": "proposalThreshold_" + }, + "id": 1078, + "name": "Identifier", + "src": "2944:18:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 974, + "type": "uint256", + "value": "MAX_PROPOSAL_THRESHOLD" + }, + "id": 1079, + "name": "Identifier", + "src": "2966:22:1" + } + ], + "id": 1080, + "name": "BinaryOperation", + "src": "2944:44:1" + } + ], + "id": 1081, + "name": "BinaryOperation", + "src": "2896:92:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c69642070726f706f73616c207468726573686f6c64", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::initialize: invalid proposal threshold\"", + "value": "GovernorBravo::initialize: invalid proposal threshold" + }, + "id": 1082, + "name": "Literal", + "src": "2990:55:1" + } + ], + "id": 1083, + "name": "FunctionCall", + "src": "2888:158:1" + } + ], + "id": 1084, + "name": "ExpressionStatement", + "src": "2888:158:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "contract TimelockInterface" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "contract TimelockInterface", + "value": "timelock" + }, + "id": 1085, + "name": "Identifier", + "src": "3057:8:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "contract TimelockInterface", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2626, + "type": "type(contract TimelockInterface)", + "value": "TimelockInterface" + }, + "id": 1086, + "name": "Identifier", + "src": "3068:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1004, + "type": "address", + "value": "timelock_" + }, + "id": 1087, + "name": "Identifier", + "src": "3086:9:1" + } + ], + "id": 1088, + "name": "FunctionCall", + "src": "3068:28:1" + } + ], + "id": 1089, + "name": "Assignment", + "src": "3057:39:1" + } + ], + "id": 1090, + "name": "ExpressionStatement", + "src": "3057:39:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "contract CompInterface" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2500, + "type": "contract CompInterface", + "value": "comp" + }, + "id": 1091, + "name": "Identifier", + "src": "3106:4:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "contract CompInterface", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2636, + "type": "type(contract CompInterface)", + "value": "CompInterface" + }, + "id": 1092, + "name": "Identifier", + "src": "3113:13:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1006, + "type": "address", + "value": "comp_" + }, + "id": 1093, + "name": "Identifier", + "src": "3127:5:1" + } + ], + "id": 1094, + "name": "FunctionCall", + "src": "3113:20:1" + } + ], + "id": 1095, + "name": "Assignment", + "src": "3106:27:1" + } + ], + "id": 1096, + "name": "ExpressionStatement", + "src": "3106:27:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2490, + "type": "uint256", + "value": "votingPeriod" + }, + "id": 1097, + "name": "Identifier", + "src": "3143:12:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1008, + "type": "uint256", + "value": "votingPeriod_" + }, + "id": 1098, + "name": "Identifier", + "src": "3158:13:1" + } + ], + "id": 1099, + "name": "Assignment", + "src": "3143:28:1" + } + ], + "id": 1100, + "name": "ExpressionStatement", + "src": "3143:28:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2488, + "type": "uint256", + "value": "votingDelay" + }, + "id": 1101, + "name": "Identifier", + "src": "3181:11:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1010, + "type": "uint256", + "value": "votingDelay_" + }, + "id": 1102, + "name": "Identifier", + "src": "3195:12:1" + } + ], + "id": 1103, + "name": "Assignment", + "src": "3181:26:1" + } + ], + "id": 1104, + "name": "ExpressionStatement", + "src": "3181:26:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2492, + "type": "uint256", + "value": "proposalThreshold" + }, + "id": 1105, + "name": "Identifier", + "src": "3217:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1012, + "type": "uint256", + "value": "proposalThreshold_" + }, + "id": 1106, + "name": "Identifier", + "src": "3237:18:1" + } + ], + "id": 1107, + "name": "Assignment", + "src": "3217:38:1" + } + ], + "id": 1108, + "name": "ExpressionStatement", + "src": "3217:38:1" + } + ], + "id": 1109, + "name": "Block", + "src": "2227:1035:1" + } + ], + "id": 1110, + "name": "FunctionDefinition", + "src": "2102:1160:1" + }, + { + "attributes": { + "documentation": "@notice Function used to propose a new proposal. Sender must have delegates above the proposal threshold\n@param targets Target addresses for proposal calls\n@param values Eth values for proposal calls\n@param signatures Function signatures for proposal calls\n@param calldatas Calldatas for proposal calls\n@param description String description of the proposal\n@return Proposal id of new proposal", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "propose", + "scope": 2267, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "targets", + "scope": 1294, + "stateVariable": false, + "storageLocation": "memory", + "type": "address[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "address[]" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1111, + "name": "ElementaryTypeName", + "src": "3751:7:1" + } + ], + "id": 1112, + "name": "ArrayTypeName", + "src": "3751:9:1" + } + ], + "id": 1113, + "name": "VariableDeclaration", + "src": "3751:24:1" + }, + { + "attributes": { + "constant": false, + "name": "values", + "scope": 1294, + "stateVariable": false, + "storageLocation": "memory", + "type": "uint256[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "uint256[]" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1114, + "name": "ElementaryTypeName", + "src": "3777:4:1" + } + ], + "id": 1115, + "name": "ArrayTypeName", + "src": "3777:6:1" + } + ], + "id": 1116, + "name": "VariableDeclaration", + "src": "3777:20:1" + }, + { + "attributes": { + "constant": false, + "name": "signatures", + "scope": 1294, + "stateVariable": false, + "storageLocation": "memory", + "type": "string[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "string[]" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1117, + "name": "ElementaryTypeName", + "src": "3799:6:1" + } + ], + "id": 1118, + "name": "ArrayTypeName", + "src": "3799:8:1" + } + ], + "id": 1119, + "name": "VariableDeclaration", + "src": "3799:26:1" + }, + { + "attributes": { + "constant": false, + "name": "calldatas", + "scope": 1294, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "bytes[]" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1120, + "name": "ElementaryTypeName", + "src": "3827:5:1" + } + ], + "id": 1121, + "name": "ArrayTypeName", + "src": "3827:7:1" + } + ], + "id": 1122, + "name": "VariableDeclaration", + "src": "3827:24:1" + }, + { + "attributes": { + "constant": false, + "name": "description", + "scope": 1294, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1123, + "name": "ElementaryTypeName", + "src": "3853:6:1" + } + ], + "id": 1124, + "name": "VariableDeclaration", + "src": "3853:25:1" + } + ], + "id": 1125, + "name": "ParameterList", + "src": "3750:129:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1294, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1126, + "name": "ElementaryTypeName", + "src": "3896:4:1" + } + ], + "id": 1127, + "name": "VariableDeclaration", + "src": "3896:4:1" + } + ], + "id": 1128, + "name": "ParameterList", + "src": "3895:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2f7689ed1f85dde3dc8971cd363eb00503765913f120e6240508da9a370f15c7", + "typeString": "literal_string \"GovernorBravo::propose: Governor Bravo not active\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1129, + "name": "Identifier", + "src": "3970:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2494, + "type": "uint256", + "value": "initialProposalId" + }, + "id": 1130, + "name": "Identifier", + "src": "3978:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1131, + "name": "Literal", + "src": "3999:1:1" + } + ], + "id": 1132, + "name": "BinaryOperation", + "src": "3978:22:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a70726f706f73653a20476f7665726e6f7220427261766f206e6f7420616374697665", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::propose: Governor Bravo not active\"", + "value": "GovernorBravo::propose: Governor Bravo not active" + }, + "id": 1133, + "name": "Literal", + "src": "4002:51:1" + } + ], + "id": 1134, + "name": "FunctionCall", + "src": "3970:84:1" + } + ], + "id": 1135, + "name": "ExpressionStatement", + "src": "3970:84:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cce33201973389eb5d5eadb02095f9ccc730733696a536c64362c77126b5086b", + "typeString": "literal_string \"GovernorBravo::propose: proposer votes below proposal threshold\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1136, + "name": "Identifier", + "src": "4064:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint96", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "getPriorVotes", + "referencedDeclaration": 2635, + "type": "function (address,uint256) view external returns (uint96)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2500, + "type": "contract CompInterface", + "value": "comp" + }, + "id": 1137, + "name": "Identifier", + "src": "4072:4:1" + } + ], + "id": 1138, + "name": "MemberAccess", + "src": "4072:18:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 1139, + "name": "Identifier", + "src": "4091:3:1" + } + ], + "id": 1140, + "name": "MemberAccess", + "src": "4091:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2254, + "type": "function (uint256,uint256) pure returns (uint256)", + "value": "sub256" + }, + "id": 1141, + "name": "Identifier", + "src": "4103:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "number", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3345, + "type": "block", + "value": "block" + }, + "id": 1142, + "name": "Identifier", + "src": "4110:5:1" + } + ], + "id": 1143, + "name": "MemberAccess", + "src": "4110:12:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1144, + "name": "Literal", + "src": "4124:1:1" + } + ], + "id": 1145, + "name": "FunctionCall", + "src": "4103:23:1" + } + ], + "id": 1146, + "name": "FunctionCall", + "src": "4072:55:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2492, + "type": "uint256", + "value": "proposalThreshold" + }, + "id": 1147, + "name": "Identifier", + "src": "4130:17:1" + } + ], + "id": 1148, + "name": "BinaryOperation", + "src": "4072:75:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73657220766f7465732062656c6f772070726f706f73616c207468726573686f6c64", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::propose: proposer votes below proposal threshold\"", + "value": "GovernorBravo::propose: proposer votes below proposal threshold" + }, + "id": 1149, + "name": "Literal", + "src": "4149:65:1" + } + ], + "id": 1150, + "name": "FunctionCall", + "src": "4064:151:1" + } + ], + "id": 1151, + "name": "ExpressionStatement", + "src": "4064:151:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_69621e97c5d982910ff5cd550f5bc5eae1e6396f0f2af9267879c186d483c16b", + "typeString": "literal_string \"GovernorBravo::propose: proposal function information arity mismatch\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1152, + "name": "Identifier", + "src": "4225:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "&&", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "&&", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "address[] memory", + "value": "targets" + }, + "id": 1153, + "name": "Identifier", + "src": "4233:7:1" + } + ], + "id": 1154, + "name": "MemberAccess", + "src": "4233:14:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1116, + "type": "uint256[] memory", + "value": "values" + }, + "id": 1155, + "name": "Identifier", + "src": "4251:6:1" + } + ], + "id": 1156, + "name": "MemberAccess", + "src": "4251:13:1" + } + ], + "id": 1157, + "name": "BinaryOperation", + "src": "4233:31:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "address[] memory", + "value": "targets" + }, + "id": 1158, + "name": "Identifier", + "src": "4268:7:1" + } + ], + "id": 1159, + "name": "MemberAccess", + "src": "4268:14:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1119, + "type": "string memory[] memory", + "value": "signatures" + }, + "id": 1160, + "name": "Identifier", + "src": "4286:10:1" + } + ], + "id": 1161, + "name": "MemberAccess", + "src": "4286:17:1" + } + ], + "id": 1162, + "name": "BinaryOperation", + "src": "4268:35:1" + } + ], + "id": 1163, + "name": "BinaryOperation", + "src": "4233:70:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "address[] memory", + "value": "targets" + }, + "id": 1164, + "name": "Identifier", + "src": "4307:7:1" + } + ], + "id": 1165, + "name": "MemberAccess", + "src": "4307:14:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1122, + "type": "bytes memory[] memory", + "value": "calldatas" + }, + "id": 1166, + "name": "Identifier", + "src": "4325:9:1" + } + ], + "id": 1167, + "name": "MemberAccess", + "src": "4325:16:1" + } + ], + "id": 1168, + "name": "BinaryOperation", + "src": "4307:34:1" + } + ], + "id": 1169, + "name": "BinaryOperation", + "src": "4233:108:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73616c2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d61746368", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::propose: proposal function information arity mismatch\"", + "value": "GovernorBravo::propose: proposal function information arity mismatch" + }, + "id": 1170, + "name": "Literal", + "src": "4343:70:1" + } + ], + "id": 1171, + "name": "FunctionCall", + "src": "4225:189:1" + } + ], + "id": 1172, + "name": "ExpressionStatement", + "src": "4225:189:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_942e2bb983822c6256804c0e2d65587399729d07b6b48b9e3fe435de5044b803", + "typeString": "literal_string \"GovernorBravo::propose: must provide actions\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1173, + "name": "Identifier", + "src": "4424:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "address[] memory", + "value": "targets" + }, + "id": 1174, + "name": "Identifier", + "src": "4432:7:1" + } + ], + "id": 1175, + "name": "MemberAccess", + "src": "4432:14:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1176, + "name": "Literal", + "src": "4450:1:1" + } + ], + "id": 1177, + "name": "BinaryOperation", + "src": "4432:19:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a70726f706f73653a206d7573742070726f7669646520616374696f6e73", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::propose: must provide actions\"", + "value": "GovernorBravo::propose: must provide actions" + }, + "id": 1178, + "name": "Literal", + "src": "4453:46:1" + } + ], + "id": 1179, + "name": "FunctionCall", + "src": "4424:76:1" + } + ], + "id": 1180, + "name": "ExpressionStatement", + "src": "4424:76:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b54d69ba9f9abad90f1f013b8ab5a1d9b4c579f5bc801e2709d01ada775467a3", + "typeString": "literal_string \"GovernorBravo::propose: too many actions\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1181, + "name": "Identifier", + "src": "4510:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "address[] memory", + "value": "targets" + }, + "id": 1182, + "name": "Identifier", + "src": "4518:7:1" + } + ], + "id": 1183, + "name": "MemberAccess", + "src": "4518:14:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 992, + "type": "uint256", + "value": "proposalMaxOperations" + }, + "id": 1184, + "name": "Identifier", + "src": "4536:21:1" + } + ], + "id": 1185, + "name": "BinaryOperation", + "src": "4518:39:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a70726f706f73653a20746f6f206d616e7920616374696f6e73", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::propose: too many actions\"", + "value": "GovernorBravo::propose: too many actions" + }, + "id": 1186, + "name": "Literal", + "src": "4559:42:1" + } + ], + "id": 1187, + "name": "FunctionCall", + "src": "4510:92:1" + } + ], + "id": 1188, + "name": "ExpressionStatement", + "src": "4510:92:1" + }, + { + "attributes": { + "assignments": [ + 1190 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "latestProposalId", + "scope": 1293, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1189, + "name": "ElementaryTypeName", + "src": "4613:4:1" + } + ], + "id": 1190, + "name": "VariableDeclaration", + "src": "4613:21:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2508, + "type": "mapping(address => uint256)", + "value": "latestProposalIds" + }, + "id": 1191, + "name": "Identifier", + "src": "4637:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 1192, + "name": "Identifier", + "src": "4655:3:1" + } + ], + "id": 1193, + "name": "MemberAccess", + "src": "4655:10:1" + } + ], + "id": 1194, + "name": "IndexAccess", + "src": "4637:29:1" + } + ], + "id": 1195, + "name": "VariableDeclarationStatement", + "src": "4613:53:1" + }, + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1190, + "type": "uint256", + "value": "latestProposalId" + }, + "id": 1196, + "name": "Identifier", + "src": "4680:16:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1197, + "name": "Literal", + "src": "4700:1:1" + } + ], + "id": 1198, + "name": "BinaryOperation", + "src": "4680:21:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1200 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "proposersLatestProposalState", + "scope": 1221, + "stateVariable": false, + "storageLocation": "default", + "type": "enum GovernorBravoDelegateStorageV1.ProposalState", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "ProposalState", + "referencedDeclaration": 2561, + "type": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "id": 1199, + "name": "UserDefinedTypeName", + "src": "4715:13:1" + } + ], + "id": 1200, + "name": "VariableDeclaration", + "src": "4715:42:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "enum GovernorBravoDelegateStorageV1.ProposalState", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1733, + "type": "function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)", + "value": "state" + }, + "id": 1201, + "name": "Identifier", + "src": "4760:5:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1190, + "type": "uint256", + "value": "latestProposalId" + }, + "id": 1202, + "name": "Identifier", + "src": "4766:16:1" + } + ], + "id": 1203, + "name": "FunctionCall", + "src": "4760:23:1" + } + ], + "id": 1204, + "name": "VariableDeclarationStatement", + "src": "4715:68:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c50c351fb39a3fd6000549d303eb3b76f9e50a4f12a9fca3ac5b1e05e941e83d", + "typeString": "literal_string \"GovernorBravo::propose: one live proposal per proposer, found an already active proposal\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1205, + "name": "Identifier", + "src": "4795:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1200, + "type": "enum GovernorBravoDelegateStorageV1.ProposalState", + "value": "proposersLatestProposalState" + }, + "id": 1206, + "name": "Identifier", + "src": "4803:28:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "Active", + "referencedDeclaration": null, + "type": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2561, + "type": "type(enum GovernorBravoDelegateStorageV1.ProposalState)", + "value": "ProposalState" + }, + "id": 1207, + "name": "Identifier", + "src": "4835:13:1" + } + ], + "id": 1208, + "name": "MemberAccess", + "src": "4835:20:1" + } + ], + "id": 1209, + "name": "BinaryOperation", + "src": "4803:52:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c6976652070726f706f73616c207065722070726f706f7365722c20666f756e6420616e20616c7265616479206163746976652070726f706f73616c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::propose: one live proposal per proposer, found an already active proposal\"", + "value": "GovernorBravo::propose: one live proposal per proposer, found an already active proposal" + }, + "id": 1210, + "name": "Literal", + "src": "4857:90:1" + } + ], + "id": 1211, + "name": "FunctionCall", + "src": "4795:153:1" + } + ], + "id": 1212, + "name": "ExpressionStatement", + "src": "4795:153:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b68c77fe71de4f5cded2058593f89b465f4c2da104481b127e1b9b6156e12ee0", + "typeString": "literal_string \"GovernorBravo::propose: one live proposal per proposer, found an already pending proposal\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1213, + "name": "Identifier", + "src": "4960:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1200, + "type": "enum GovernorBravoDelegateStorageV1.ProposalState", + "value": "proposersLatestProposalState" + }, + "id": 1214, + "name": "Identifier", + "src": "4968:28:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "Pending", + "referencedDeclaration": null, + "type": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2561, + "type": "type(enum GovernorBravoDelegateStorageV1.ProposalState)", + "value": "ProposalState" + }, + "id": 1215, + "name": "Identifier", + "src": "5000:13:1" + } + ], + "id": 1216, + "name": "MemberAccess", + "src": "5000:21:1" + } + ], + "id": 1217, + "name": "BinaryOperation", + "src": "4968:53:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c6976652070726f706f73616c207065722070726f706f7365722c20666f756e6420616e20616c72656164792070656e64696e672070726f706f73616c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::propose: one live proposal per proposer, found an already pending proposal\"", + "value": "GovernorBravo::propose: one live proposal per proposer, found an already pending proposal" + }, + "id": 1218, + "name": "Literal", + "src": "5023:91:1" + } + ], + "id": 1219, + "name": "FunctionCall", + "src": "4960:155:1" + } + ], + "id": 1220, + "name": "ExpressionStatement", + "src": "4960:155:1" + } + ], + "id": 1221, + "name": "Block", + "src": "4703:423:1" + } + ], + "id": 1222, + "name": "IfStatement", + "src": "4676:450:1" + }, + { + "attributes": { + "assignments": [ + 1224 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "startBlock", + "scope": 1293, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1223, + "name": "ElementaryTypeName", + "src": "5136:4:1" + } + ], + "id": 1224, + "name": "VariableDeclaration", + "src": "5136:15:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2233, + "type": "function (uint256,uint256) pure returns (uint256)", + "value": "add256" + }, + "id": 1225, + "name": "Identifier", + "src": "5154:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "number", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3345, + "type": "block", + "value": "block" + }, + "id": 1226, + "name": "Identifier", + "src": "5161:5:1" + } + ], + "id": 1227, + "name": "MemberAccess", + "src": "5161:12:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2488, + "type": "uint256", + "value": "votingDelay" + }, + "id": 1228, + "name": "Identifier", + "src": "5175:11:1" + } + ], + "id": 1229, + "name": "FunctionCall", + "src": "5154:33:1" + } + ], + "id": 1230, + "name": "VariableDeclarationStatement", + "src": "5136:51:1" + }, + { + "attributes": { + "assignments": [ + 1232 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "endBlock", + "scope": 1293, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1231, + "name": "ElementaryTypeName", + "src": "5197:4:1" + } + ], + "id": 1232, + "name": "VariableDeclaration", + "src": "5197:13:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2233, + "type": "function (uint256,uint256) pure returns (uint256)", + "value": "add256" + }, + "id": 1233, + "name": "Identifier", + "src": "5213:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1224, + "type": "uint256", + "value": "startBlock" + }, + "id": 1234, + "name": "Identifier", + "src": "5220:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2490, + "type": "uint256", + "value": "votingPeriod" + }, + "id": 1235, + "name": "Identifier", + "src": "5232:12:1" + } + ], + "id": 1236, + "name": "FunctionCall", + "src": "5213:32:1" + } + ], + "id": 1237, + "name": "VariableDeclarationStatement", + "src": "5197:48:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2496, + "type": "uint256", + "value": "proposalCount" + }, + "id": 1238, + "name": "Identifier", + "src": "5256:13:1" + } + ], + "id": 1239, + "name": "UnaryOperation", + "src": "5256:15:1" + } + ], + "id": 1240, + "name": "ExpressionStatement", + "src": "5256:15:1" + }, + { + "attributes": { + "assignments": [ + 1242 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "newProposal", + "scope": 1293, + "stateVariable": false, + "storageLocation": "memory", + "type": "struct GovernorBravoDelegateStorageV1.Proposal", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "Proposal", + "referencedDeclaration": 2545, + "type": "struct GovernorBravoDelegateStorageV1.Proposal" + }, + "id": 1241, + "name": "UserDefinedTypeName", + "src": "5281:8:1" + } + ], + "id": 1242, + "name": "VariableDeclaration", + "src": "5281:27:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": true, + "lValueRequested": false, + "names": [ + "id", + "proposer", + "eta", + "targets", + "values", + "signatures", + "calldatas", + "startBlock", + "endBlock", + "forVotes", + "againstVotes", + "abstainVotes", + "canceled", + "executed" + ], + "type": "struct GovernorBravoDelegateStorageV1.Proposal memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr", + "typeString": "string memory[] memory" + }, + { + "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2545, + "type": "type(struct GovernorBravoDelegateStorageV1.Proposal storage pointer)", + "value": "Proposal" + }, + "id": 1243, + "name": "Identifier", + "src": "5311:8:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2496, + "type": "uint256", + "value": "proposalCount" + }, + "id": 1244, + "name": "Identifier", + "src": "5338:13:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 1245, + "name": "Identifier", + "src": "5375:3:1" + } + ], + "id": 1246, + "name": "MemberAccess", + "src": "5375:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1247, + "name": "Literal", + "src": "5404:1:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "address[] memory", + "value": "targets" + }, + "id": 1248, + "name": "Identifier", + "src": "5428:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1116, + "type": "uint256[] memory", + "value": "values" + }, + "id": 1249, + "name": "Identifier", + "src": "5457:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1119, + "type": "string memory[] memory", + "value": "signatures" + }, + "id": 1250, + "name": "Identifier", + "src": "5489:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1122, + "type": "bytes memory[] memory", + "value": "calldatas" + }, + "id": 1251, + "name": "Identifier", + "src": "5524:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1224, + "type": "uint256", + "value": "startBlock" + }, + "id": 1252, + "name": "Identifier", + "src": "5559:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1232, + "type": "uint256", + "value": "endBlock" + }, + "id": 1253, + "name": "Identifier", + "src": "5593:8:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1254, + "name": "Literal", + "src": "5625:1:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1255, + "name": "Literal", + "src": "5654:1:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1256, + "name": "Literal", + "src": "5683:1:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1257, + "name": "Literal", + "src": "5708:5:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1258, + "name": "Literal", + "src": "5737:5:1" + } + ], + "id": 1259, + "name": "FunctionCall", + "src": "5311:442:1" + } + ], + "id": 1260, + "name": "VariableDeclarationStatement", + "src": "5281:472:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2504, + "type": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)", + "value": "proposals" + }, + "id": 1261, + "name": "Identifier", + "src": "5764:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "id", + "referencedDeclaration": 2510, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1242, + "type": "struct GovernorBravoDelegateStorageV1.Proposal memory", + "value": "newProposal" + }, + "id": 1262, + "name": "Identifier", + "src": "5774:11:1" + } + ], + "id": 1263, + "name": "MemberAccess", + "src": "5774:14:1" + } + ], + "id": 1264, + "name": "IndexAccess", + "src": "5764:25:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1242, + "type": "struct GovernorBravoDelegateStorageV1.Proposal memory", + "value": "newProposal" + }, + "id": 1265, + "name": "Identifier", + "src": "5792:11:1" + } + ], + "id": 1266, + "name": "Assignment", + "src": "5764:39:1" + } + ], + "id": 1267, + "name": "ExpressionStatement", + "src": "5764:39:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2508, + "type": "mapping(address => uint256)", + "value": "latestProposalIds" + }, + "id": 1268, + "name": "Identifier", + "src": "5813:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "proposer", + "referencedDeclaration": 2512, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1242, + "type": "struct GovernorBravoDelegateStorageV1.Proposal memory", + "value": "newProposal" + }, + "id": 1269, + "name": "Identifier", + "src": "5831:11:1" + } + ], + "id": 1270, + "name": "MemberAccess", + "src": "5831:20:1" + } + ], + "id": 1271, + "name": "IndexAccess", + "src": "5813:39:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "id", + "referencedDeclaration": 2510, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1242, + "type": "struct GovernorBravoDelegateStorageV1.Proposal memory", + "value": "newProposal" + }, + "id": 1272, + "name": "Identifier", + "src": "5855:11:1" + } + ], + "id": 1273, + "name": "MemberAccess", + "src": "5855:14:1" + } + ], + "id": 1274, + "name": "Assignment", + "src": "5813:56:1" + } + ], + "id": 1275, + "name": "ExpressionStatement", + "src": "5813:56:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr", + "typeString": "string memory[] memory" + }, + { + "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2414, + "type": "function (uint256,address,address[] memory,uint256[] memory,string memory[] memory,bytes memory[] memory,uint256,uint256,string memory)", + "value": "ProposalCreated" + }, + "id": 1276, + "name": "Identifier", + "src": "5885:15:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "id", + "referencedDeclaration": 2510, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1242, + "type": "struct GovernorBravoDelegateStorageV1.Proposal memory", + "value": "newProposal" + }, + "id": 1277, + "name": "Identifier", + "src": "5901:11:1" + } + ], + "id": 1278, + "name": "MemberAccess", + "src": "5901:14:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 1279, + "name": "Identifier", + "src": "5917:3:1" + } + ], + "id": 1280, + "name": "MemberAccess", + "src": "5917:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "address[] memory", + "value": "targets" + }, + "id": 1281, + "name": "Identifier", + "src": "5929:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1116, + "type": "uint256[] memory", + "value": "values" + }, + "id": 1282, + "name": "Identifier", + "src": "5938:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1119, + "type": "string memory[] memory", + "value": "signatures" + }, + "id": 1283, + "name": "Identifier", + "src": "5946:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1122, + "type": "bytes memory[] memory", + "value": "calldatas" + }, + "id": 1284, + "name": "Identifier", + "src": "5958:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1224, + "type": "uint256", + "value": "startBlock" + }, + "id": 1285, + "name": "Identifier", + "src": "5969:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1232, + "type": "uint256", + "value": "endBlock" + }, + "id": 1286, + "name": "Identifier", + "src": "5981:8:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1124, + "type": "string memory", + "value": "description" + }, + "id": 1287, + "name": "Identifier", + "src": "5991:11:1" + } + ], + "id": 1288, + "name": "FunctionCall", + "src": "5885:118:1" + } + ], + "id": 1289, + "name": "EmitStatement", + "src": "5880:123:1" + }, + { + "attributes": { + "functionReturnParameters": 1128 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "id", + "referencedDeclaration": 2510, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1242, + "type": "struct GovernorBravoDelegateStorageV1.Proposal memory", + "value": "newProposal" + }, + "id": 1290, + "name": "Identifier", + "src": "6020:11:1" + } + ], + "id": 1291, + "name": "MemberAccess", + "src": "6020:14:1" + } + ], + "id": 1292, + "name": "Return", + "src": "6013:21:1" + } + ], + "id": 1293, + "name": "Block", + "src": "3902:2139:1" + } + ], + "id": 1294, + "name": "FunctionDefinition", + "src": "3734:2307:1" + }, + { + "attributes": { + "documentation": "@notice Queues a proposal of state succeeded\n@param proposalId The id of the proposal to queue", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "queue", + "scope": 2267, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "proposalId", + "scope": 1371, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1295, + "name": "ElementaryTypeName", + "src": "6190:4:1" + } + ], + "id": 1296, + "name": "VariableDeclaration", + "src": "6190:15:1" + } + ], + "id": 1297, + "name": "ParameterList", + "src": "6189:17:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1298, + "name": "ParameterList", + "src": "6216:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8b18b74b598045096f64bbdf9460c8b5777b3d00c07ed948d457fa444a8ee5bd", + "typeString": "literal_string \"GovernorBravo::queue: proposal can only be queued if it is succeeded\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1299, + "name": "Identifier", + "src": "6226:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "enum GovernorBravoDelegateStorageV1.ProposalState", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1733, + "type": "function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)", + "value": "state" + }, + "id": 1300, + "name": "Identifier", + "src": "6234:5:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1296, + "type": "uint256", + "value": "proposalId" + }, + "id": 1301, + "name": "Identifier", + "src": "6240:10:1" + } + ], + "id": 1302, + "name": "FunctionCall", + "src": "6234:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "Succeeded", + "referencedDeclaration": null, + "type": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2561, + "type": "type(enum GovernorBravoDelegateStorageV1.ProposalState)", + "value": "ProposalState" + }, + "id": 1303, + "name": "Identifier", + "src": "6255:13:1" + } + ], + "id": 1304, + "name": "MemberAccess", + "src": "6255:23:1" + } + ], + "id": 1305, + "name": "BinaryOperation", + "src": "6234:44:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a71756575653a2070726f706f73616c2063616e206f6e6c792062652071756575656420696620697420697320737563636565646564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::queue: proposal can only be queued if it is succeeded\"", + "value": "GovernorBravo::queue: proposal can only be queued if it is succeeded" + }, + "id": 1306, + "name": "Literal", + "src": "6280:70:1" + } + ], + "id": 1307, + "name": "FunctionCall", + "src": "6226:125:1" + } + ], + "id": 1308, + "name": "ExpressionStatement", + "src": "6226:125:1" + }, + { + "attributes": { + "assignments": [ + 1310 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "proposal", + "scope": 1370, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct GovernorBravoDelegateStorageV1.Proposal", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "Proposal", + "referencedDeclaration": 2545, + "type": "struct GovernorBravoDelegateStorageV1.Proposal" + }, + "id": 1309, + "name": "UserDefinedTypeName", + "src": "6361:8:1" + } + ], + "id": 1310, + "name": "VariableDeclaration", + "src": "6361:25:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2504, + "type": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)", + "value": "proposals" + }, + "id": 1311, + "name": "Identifier", + "src": "6389:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1296, + "type": "uint256", + "value": "proposalId" + }, + "id": 1312, + "name": "Identifier", + "src": "6399:10:1" + } + ], + "id": 1313, + "name": "IndexAccess", + "src": "6389:21:1" + } + ], + "id": 1314, + "name": "VariableDeclarationStatement", + "src": "6361:49:1" + }, + { + "attributes": { + "assignments": [ + 1316 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 1370, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1315, + "name": "ElementaryTypeName", + "src": "6420:4:1" + } + ], + "id": 1316, + "name": "VariableDeclaration", + "src": "6420:8:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2233, + "type": "function (uint256,uint256) pure returns (uint256)", + "value": "add256" + }, + "id": 1317, + "name": "Identifier", + "src": "6431:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "timestamp", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3345, + "type": "block", + "value": "block" + }, + "id": 1318, + "name": "Identifier", + "src": "6438:5:1" + } + ], + "id": 1319, + "name": "MemberAccess", + "src": "6438:15:1" + }, + { + "attributes": { + "argumentTypes": null, + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "delay", + "referencedDeclaration": 2567, + "type": "function () view external returns (uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "contract TimelockInterface", + "value": "timelock" + }, + "id": 1320, + "name": "Identifier", + "src": "6455:8:1" + } + ], + "id": 1321, + "name": "MemberAccess", + "src": "6455:14:1" + } + ], + "id": 1322, + "name": "FunctionCall", + "src": "6455:16:1" + } + ], + "id": 1323, + "name": "FunctionCall", + "src": "6431:41:1" + } + ], + "id": 1324, + "name": "VariableDeclarationStatement", + "src": "6420:52:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1326 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "i", + "scope": 1358, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1325, + "name": "ElementaryTypeName", + "src": "6487:4:1" + } + ], + "id": 1326, + "name": "VariableDeclaration", + "src": "6487:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1327, + "name": "Literal", + "src": "6496:1:1" + } + ], + "id": 1328, + "name": "VariableDeclarationStatement", + "src": "6487:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1326, + "type": "uint256", + "value": "i" + }, + "id": 1329, + "name": "Identifier", + "src": "6499:1:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "targets", + "referencedDeclaration": 2517, + "type": "address[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1310, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1330, + "name": "Identifier", + "src": "6503:8:1" + } + ], + "id": 1331, + "name": "MemberAccess", + "src": "6503:16:1" + } + ], + "id": 1332, + "name": "MemberAccess", + "src": "6503:23:1" + } + ], + "id": 1333, + "name": "BinaryOperation", + "src": "6499:27:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1326, + "type": "uint256", + "value": "i" + }, + "id": 1334, + "name": "Identifier", + "src": "6528:1:1" + } + ], + "id": 1335, + "name": "UnaryOperation", + "src": "6528:3:1" + } + ], + "id": 1336, + "name": "ExpressionStatement", + "src": "6528:3:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1413, + "type": "function (address,uint256,string memory,bytes memory,uint256)", + "value": "queueOrRevertInternal" + }, + "id": 1337, + "name": "Identifier", + "src": "6547:21:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "targets", + "referencedDeclaration": 2517, + "type": "address[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1310, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1338, + "name": "Identifier", + "src": "6569:8:1" + } + ], + "id": 1339, + "name": "MemberAccess", + "src": "6569:16:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1326, + "type": "uint256", + "value": "i" + }, + "id": 1340, + "name": "Identifier", + "src": "6586:1:1" + } + ], + "id": 1341, + "name": "IndexAccess", + "src": "6569:19:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "values", + "referencedDeclaration": 2520, + "type": "uint256[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1310, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1342, + "name": "Identifier", + "src": "6590:8:1" + } + ], + "id": 1343, + "name": "MemberAccess", + "src": "6590:15:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1326, + "type": "uint256", + "value": "i" + }, + "id": 1344, + "name": "Identifier", + "src": "6606:1:1" + } + ], + "id": 1345, + "name": "IndexAccess", + "src": "6590:18:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "signatures", + "referencedDeclaration": 2523, + "type": "string storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1310, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1346, + "name": "Identifier", + "src": "6610:8:1" + } + ], + "id": 1347, + "name": "MemberAccess", + "src": "6610:19:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1326, + "type": "uint256", + "value": "i" + }, + "id": 1348, + "name": "Identifier", + "src": "6630:1:1" + } + ], + "id": 1349, + "name": "IndexAccess", + "src": "6610:22:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "calldatas", + "referencedDeclaration": 2526, + "type": "bytes storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1310, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1350, + "name": "Identifier", + "src": "6634:8:1" + } + ], + "id": 1351, + "name": "MemberAccess", + "src": "6634:18:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1326, + "type": "uint256", + "value": "i" + }, + "id": 1352, + "name": "Identifier", + "src": "6653:1:1" + } + ], + "id": 1353, + "name": "IndexAccess", + "src": "6634:21:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1316, + "type": "uint256", + "value": "eta" + }, + "id": 1354, + "name": "Identifier", + "src": "6657:3:1" + } + ], + "id": 1355, + "name": "FunctionCall", + "src": "6547:114:1" + } + ], + "id": 1356, + "name": "ExpressionStatement", + "src": "6547:114:1" + } + ], + "id": 1357, + "name": "Block", + "src": "6533:139:1" + } + ], + "id": 1358, + "name": "ForStatement", + "src": "6482:190:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "eta", + "referencedDeclaration": 2514, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1310, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1359, + "name": "Identifier", + "src": "6681:8:1" + } + ], + "id": 1361, + "name": "MemberAccess", + "src": "6681:12:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1316, + "type": "uint256", + "value": "eta" + }, + "id": 1362, + "name": "Identifier", + "src": "6696:3:1" + } + ], + "id": 1363, + "name": "Assignment", + "src": "6681:18:1" + } + ], + "id": 1364, + "name": "ExpressionStatement", + "src": "6681:18:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2436, + "type": "function (uint256,uint256)", + "value": "ProposalQueued" + }, + "id": 1365, + "name": "Identifier", + "src": "6714:14:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1296, + "type": "uint256", + "value": "proposalId" + }, + "id": 1366, + "name": "Identifier", + "src": "6729:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1316, + "type": "uint256", + "value": "eta" + }, + "id": 1367, + "name": "Identifier", + "src": "6741:3:1" + } + ], + "id": 1368, + "name": "FunctionCall", + "src": "6714:31:1" + } + ], + "id": 1369, + "name": "EmitStatement", + "src": "6709:36:1" + } + ], + "id": 1370, + "name": "Block", + "src": "6216:536:1" + } + ], + "id": 1371, + "name": "FunctionDefinition", + "src": "6175:577:1" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "queueOrRevertInternal", + "scope": 2267, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 1413, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1372, + "name": "ElementaryTypeName", + "src": "6789:7:1" + } + ], + "id": 1373, + "name": "VariableDeclaration", + "src": "6789:14:1" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 1413, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1374, + "name": "ElementaryTypeName", + "src": "6805:4:1" + } + ], + "id": 1375, + "name": "VariableDeclaration", + "src": "6805:10:1" + }, + { + "attributes": { + "constant": false, + "name": "signature", + "scope": 1413, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1376, + "name": "ElementaryTypeName", + "src": "6817:6:1" + } + ], + "id": 1377, + "name": "VariableDeclaration", + "src": "6817:23:1" + }, + { + "attributes": { + "constant": false, + "name": "data", + "scope": 1413, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1378, + "name": "ElementaryTypeName", + "src": "6842:5:1" + } + ], + "id": 1379, + "name": "VariableDeclaration", + "src": "6842:17:1" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 1413, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1380, + "name": "ElementaryTypeName", + "src": "6861:4:1" + } + ], + "id": 1381, + "name": "VariableDeclaration", + "src": "6861:8:1" + } + ], + "id": 1382, + "name": "ParameterList", + "src": "6788:82:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1383, + "name": "ParameterList", + "src": "6880:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1c438b0cfaad67e6d7c60ceb8ef7ecff37faff9e792b7a026c00b374a537d965", + "typeString": "literal_string \"GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1384, + "name": "Identifier", + "src": "6890:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "queuedTransactions", + "referencedDeclaration": 2582, + "type": "function (bytes32) view external returns (bool)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "contract TimelockInterface", + "value": "timelock" + }, + "id": 1385, + "name": "Identifier", + "src": "6899:8:1" + } + ], + "id": 1386, + "name": "MemberAccess", + "src": "6899:27:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3349, + "type": "function (bytes memory) pure returns (bytes32)", + "value": "keccak256" + }, + "id": 1387, + "name": "Identifier", + "src": "6927:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encode", + "referencedDeclaration": null, + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3342, + "type": "abi", + "value": "abi" + }, + "id": 1388, + "name": "Identifier", + "src": "6937:3:1" + } + ], + "id": 1389, + "name": "MemberAccess", + "src": "6937:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1373, + "type": "address", + "value": "target" + }, + "id": 1390, + "name": "Identifier", + "src": "6948:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1375, + "type": "uint256", + "value": "value" + }, + "id": 1391, + "name": "Identifier", + "src": "6956:5:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1377, + "type": "string memory", + "value": "signature" + }, + "id": 1392, + "name": "Identifier", + "src": "6963:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1379, + "type": "bytes memory", + "value": "data" + }, + "id": 1393, + "name": "Identifier", + "src": "6974:4:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1381, + "type": "uint256", + "value": "eta" + }, + "id": 1394, + "name": "Identifier", + "src": "6980:3:1" + } + ], + "id": 1395, + "name": "FunctionCall", + "src": "6937:47:1" + } + ], + "id": 1396, + "name": "FunctionCall", + "src": "6927:58:1" + } + ], + "id": 1397, + "name": "FunctionCall", + "src": "6899:87:1" + } + ], + "id": 1398, + "name": "UnaryOperation", + "src": "6898:88:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a71756575654f72526576657274496e7465726e616c3a206964656e746963616c2070726f706f73616c20616374696f6e20616c72656164792071756575656420617420657461", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta\"", + "value": "GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta" + }, + "id": 1399, + "name": "Literal", + "src": "6988:87:1" + } + ], + "id": 1400, + "name": "FunctionCall", + "src": "6890:186:1" + } + ], + "id": 1401, + "name": "ExpressionStatement", + "src": "6890:186:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "queueTransaction", + "referencedDeclaration": 2597, + "type": "function (address,uint256,string memory,bytes memory,uint256) external returns (bytes32)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "contract TimelockInterface", + "value": "timelock" + }, + "id": 1402, + "name": "Identifier", + "src": "7086:8:1" + } + ], + "id": 1404, + "name": "MemberAccess", + "src": "7086:25:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1373, + "type": "address", + "value": "target" + }, + "id": 1405, + "name": "Identifier", + "src": "7112:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1375, + "type": "uint256", + "value": "value" + }, + "id": 1406, + "name": "Identifier", + "src": "7120:5:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1377, + "type": "string memory", + "value": "signature" + }, + "id": 1407, + "name": "Identifier", + "src": "7127:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1379, + "type": "bytes memory", + "value": "data" + }, + "id": 1408, + "name": "Identifier", + "src": "7138:4:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1381, + "type": "uint256", + "value": "eta" + }, + "id": 1409, + "name": "Identifier", + "src": "7144:3:1" + } + ], + "id": 1410, + "name": "FunctionCall", + "src": "7086:62:1" + } + ], + "id": 1411, + "name": "ExpressionStatement", + "src": "7086:62:1" + } + ], + "id": 1412, + "name": "Block", + "src": "6880:275:1" + } + ], + "id": 1413, + "name": "FunctionDefinition", + "src": "6758:397:1" + }, + { + "attributes": { + "documentation": "@notice Executes a queued proposal if eta has passed\n@param proposalId The id of the proposal to execute", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "execute", + "scope": 2267, + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "proposalId", + "scope": 1489, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1414, + "name": "ElementaryTypeName", + "src": "7316:4:1" + } + ], + "id": 1415, + "name": "VariableDeclaration", + "src": "7316:15:1" + } + ], + "id": 1416, + "name": "ParameterList", + "src": "7315:17:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1417, + "name": "ParameterList", + "src": "7350:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5fbf48e8c3a21a3625f21d95c8b2dda12d19a9eb23201ab81343d35beaf2fa53", + "typeString": "literal_string \"GovernorBravo::execute: proposal can only be executed if it is queued\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1418, + "name": "Identifier", + "src": "7360:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "enum GovernorBravoDelegateStorageV1.ProposalState", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1733, + "type": "function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)", + "value": "state" + }, + "id": 1419, + "name": "Identifier", + "src": "7368:5:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1415, + "type": "uint256", + "value": "proposalId" + }, + "id": 1420, + "name": "Identifier", + "src": "7374:10:1" + } + ], + "id": 1421, + "name": "FunctionCall", + "src": "7368:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "Queued", + "referencedDeclaration": null, + "type": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2561, + "type": "type(enum GovernorBravoDelegateStorageV1.ProposalState)", + "value": "ProposalState" + }, + "id": 1422, + "name": "Identifier", + "src": "7389:13:1" + } + ], + "id": 1423, + "name": "MemberAccess", + "src": "7389:20:1" + } + ], + "id": 1424, + "name": "BinaryOperation", + "src": "7368:41:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a657865637574653a2070726f706f73616c2063616e206f6e6c7920626520657865637574656420696620697420697320717565756564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::execute: proposal can only be executed if it is queued\"", + "value": "GovernorBravo::execute: proposal can only be executed if it is queued" + }, + "id": 1425, + "name": "Literal", + "src": "7411:71:1" + } + ], + "id": 1426, + "name": "FunctionCall", + "src": "7360:123:1" + } + ], + "id": 1427, + "name": "ExpressionStatement", + "src": "7360:123:1" + }, + { + "attributes": { + "assignments": [ + 1429 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "proposal", + "scope": 1488, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct GovernorBravoDelegateStorageV1.Proposal", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "Proposal", + "referencedDeclaration": 2545, + "type": "struct GovernorBravoDelegateStorageV1.Proposal" + }, + "id": 1428, + "name": "UserDefinedTypeName", + "src": "7493:8:1" + } + ], + "id": 1429, + "name": "VariableDeclaration", + "src": "7493:25:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2504, + "type": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)", + "value": "proposals" + }, + "id": 1430, + "name": "Identifier", + "src": "7521:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1415, + "type": "uint256", + "value": "proposalId" + }, + "id": 1431, + "name": "Identifier", + "src": "7531:10:1" + } + ], + "id": 1432, + "name": "IndexAccess", + "src": "7521:21:1" + } + ], + "id": 1433, + "name": "VariableDeclarationStatement", + "src": "7493:49:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "executed", + "referencedDeclaration": 2540, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1434, + "name": "Identifier", + "src": "7552:8:1" + } + ], + "id": 1436, + "name": "MemberAccess", + "src": "7552:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1437, + "name": "Literal", + "src": "7572:4:1" + } + ], + "id": 1438, + "name": "Assignment", + "src": "7552:24:1" + } + ], + "id": 1439, + "name": "ExpressionStatement", + "src": "7552:24:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1441 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "i", + "scope": 1483, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1440, + "name": "ElementaryTypeName", + "src": "7591:4:1" + } + ], + "id": 1441, + "name": "VariableDeclaration", + "src": "7591:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1442, + "name": "Literal", + "src": "7600:1:1" + } + ], + "id": 1443, + "name": "VariableDeclarationStatement", + "src": "7591:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1441, + "type": "uint256", + "value": "i" + }, + "id": 1444, + "name": "Identifier", + "src": "7603:1:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "targets", + "referencedDeclaration": 2517, + "type": "address[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1445, + "name": "Identifier", + "src": "7607:8:1" + } + ], + "id": 1446, + "name": "MemberAccess", + "src": "7607:16:1" + } + ], + "id": 1447, + "name": "MemberAccess", + "src": "7607:23:1" + } + ], + "id": 1448, + "name": "BinaryOperation", + "src": "7603:27:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1441, + "type": "uint256", + "value": "i" + }, + "id": 1449, + "name": "Identifier", + "src": "7632:1:1" + } + ], + "id": 1450, + "name": "UnaryOperation", + "src": "7632:3:1" + } + ], + "id": 1451, + "name": "ExpressionStatement", + "src": "7632:3:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "function (address,uint256,string memory,bytes memory,uint256) payable external returns (bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "value", + "referencedDeclaration": null, + "type": "function (uint256) pure returns (function (address,uint256,string memory,bytes memory,uint256) payable external returns (bytes memory))" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "executeTransaction", + "referencedDeclaration": 2625, + "type": "function (address,uint256,string memory,bytes memory,uint256) payable external returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "contract TimelockInterface", + "value": "timelock" + }, + "id": 1452, + "name": "Identifier", + "src": "7651:8:1" + } + ], + "id": 1455, + "name": "MemberAccess", + "src": "7651:27:1" + } + ], + "id": 1456, + "name": "MemberAccess", + "src": "7651:33:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "values", + "referencedDeclaration": 2520, + "type": "uint256[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1457, + "name": "Identifier", + "src": "7685:8:1" + } + ], + "id": 1458, + "name": "MemberAccess", + "src": "7685:15:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1441, + "type": "uint256", + "value": "i" + }, + "id": 1459, + "name": "Identifier", + "src": "7701:1:1" + } + ], + "id": 1460, + "name": "IndexAccess", + "src": "7685:18:1" + } + ], + "id": 1461, + "name": "FunctionCall", + "src": "7651:53:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "targets", + "referencedDeclaration": 2517, + "type": "address[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1462, + "name": "Identifier", + "src": "7705:8:1" + } + ], + "id": 1463, + "name": "MemberAccess", + "src": "7705:16:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1441, + "type": "uint256", + "value": "i" + }, + "id": 1464, + "name": "Identifier", + "src": "7722:1:1" + } + ], + "id": 1465, + "name": "IndexAccess", + "src": "7705:19:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "values", + "referencedDeclaration": 2520, + "type": "uint256[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1466, + "name": "Identifier", + "src": "7726:8:1" + } + ], + "id": 1467, + "name": "MemberAccess", + "src": "7726:15:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1441, + "type": "uint256", + "value": "i" + }, + "id": 1468, + "name": "Identifier", + "src": "7742:1:1" + } + ], + "id": 1469, + "name": "IndexAccess", + "src": "7726:18:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "signatures", + "referencedDeclaration": 2523, + "type": "string storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1470, + "name": "Identifier", + "src": "7746:8:1" + } + ], + "id": 1471, + "name": "MemberAccess", + "src": "7746:19:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1441, + "type": "uint256", + "value": "i" + }, + "id": 1472, + "name": "Identifier", + "src": "7766:1:1" + } + ], + "id": 1473, + "name": "IndexAccess", + "src": "7746:22:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "calldatas", + "referencedDeclaration": 2526, + "type": "bytes storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1474, + "name": "Identifier", + "src": "7770:8:1" + } + ], + "id": 1475, + "name": "MemberAccess", + "src": "7770:18:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1441, + "type": "uint256", + "value": "i" + }, + "id": 1476, + "name": "Identifier", + "src": "7789:1:1" + } + ], + "id": 1477, + "name": "IndexAccess", + "src": "7770:21:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "eta", + "referencedDeclaration": 2514, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1478, + "name": "Identifier", + "src": "7793:8:1" + } + ], + "id": 1479, + "name": "MemberAccess", + "src": "7793:12:1" + } + ], + "id": 1480, + "name": "FunctionCall", + "src": "7651:155:1" + } + ], + "id": 1481, + "name": "ExpressionStatement", + "src": "7651:155:1" + } + ], + "id": 1482, + "name": "Block", + "src": "7637:180:1" + } + ], + "id": 1483, + "name": "ForStatement", + "src": "7586:231:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2440, + "type": "function (uint256)", + "value": "ProposalExecuted" + }, + "id": 1484, + "name": "Identifier", + "src": "7831:16:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1415, + "type": "uint256", + "value": "proposalId" + }, + "id": 1485, + "name": "Identifier", + "src": "7848:10:1" + } + ], + "id": 1486, + "name": "FunctionCall", + "src": "7831:28:1" + } + ], + "id": 1487, + "name": "EmitStatement", + "src": "7826:33:1" + } + ], + "id": 1488, + "name": "Block", + "src": "7350:516:1" + } + ], + "id": 1489, + "name": "FunctionDefinition", + "src": "7299:567:1" + }, + { + "attributes": { + "documentation": "@notice Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold\n@param proposalId The id of the proposal to cancel", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "cancel", + "scope": 2267, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "proposalId", + "scope": 1580, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1490, + "name": "ElementaryTypeName", + "src": "8086:4:1" + } + ], + "id": 1491, + "name": "VariableDeclaration", + "src": "8086:15:1" + } + ], + "id": 1492, + "name": "ParameterList", + "src": "8085:17:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1493, + "name": "ParameterList", + "src": "8112:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d48c38cdee932c14d51343eb15469a6b4385fa79519fea37fc1716c00abad924", + "typeString": "literal_string \"GovernorBravo::cancel: cannot cancel executed proposal\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1494, + "name": "Identifier", + "src": "8122:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "enum GovernorBravoDelegateStorageV1.ProposalState", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1733, + "type": "function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)", + "value": "state" + }, + "id": 1495, + "name": "Identifier", + "src": "8130:5:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1491, + "type": "uint256", + "value": "proposalId" + }, + "id": 1496, + "name": "Identifier", + "src": "8136:10:1" + } + ], + "id": 1497, + "name": "FunctionCall", + "src": "8130:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "Executed", + "referencedDeclaration": null, + "type": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2561, + "type": "type(enum GovernorBravoDelegateStorageV1.ProposalState)", + "value": "ProposalState" + }, + "id": 1498, + "name": "Identifier", + "src": "8151:13:1" + } + ], + "id": 1499, + "name": "MemberAccess", + "src": "8151:22:1" + } + ], + "id": 1500, + "name": "BinaryOperation", + "src": "8130:43:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a63616e63656c3a2063616e6e6f742063616e63656c2065786563757465642070726f706f73616c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::cancel: cannot cancel executed proposal\"", + "value": "GovernorBravo::cancel: cannot cancel executed proposal" + }, + "id": 1501, + "name": "Literal", + "src": "8175:56:1" + } + ], + "id": 1502, + "name": "FunctionCall", + "src": "8122:110:1" + } + ], + "id": 1503, + "name": "ExpressionStatement", + "src": "8122:110:1" + }, + { + "attributes": { + "assignments": [ + 1505 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "proposal", + "scope": 1579, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct GovernorBravoDelegateStorageV1.Proposal", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "Proposal", + "referencedDeclaration": 2545, + "type": "struct GovernorBravoDelegateStorageV1.Proposal" + }, + "id": 1504, + "name": "UserDefinedTypeName", + "src": "8243:8:1" + } + ], + "id": 1505, + "name": "VariableDeclaration", + "src": "8243:25:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2504, + "type": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)", + "value": "proposals" + }, + "id": 1506, + "name": "Identifier", + "src": "8271:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1491, + "type": "uint256", + "value": "proposalId" + }, + "id": 1507, + "name": "Identifier", + "src": "8281:10:1" + } + ], + "id": 1508, + "name": "IndexAccess", + "src": "8271:21:1" + } + ], + "id": 1509, + "name": "VariableDeclarationStatement", + "src": "8243:49:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_af71986e0c1f80c2512b8b2deae5a125bfd8f0bdb9eb99f370c87681d9dd1dd1", + "typeString": "literal_string \"GovernorBravo::cancel: proposer above threshold\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1510, + "name": "Identifier", + "src": "8302:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 1511, + "name": "Identifier", + "src": "8310:3:1" + } + ], + "id": 1512, + "name": "MemberAccess", + "src": "8310:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "proposer", + "referencedDeclaration": 2512, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1505, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1513, + "name": "Identifier", + "src": "8324:8:1" + } + ], + "id": 1514, + "name": "MemberAccess", + "src": "8324:17:1" + } + ], + "id": 1515, + "name": "BinaryOperation", + "src": "8310:31:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint96", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "getPriorVotes", + "referencedDeclaration": 2635, + "type": "function (address,uint256) view external returns (uint96)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2500, + "type": "contract CompInterface", + "value": "comp" + }, + "id": 1516, + "name": "Identifier", + "src": "8345:4:1" + } + ], + "id": 1517, + "name": "MemberAccess", + "src": "8345:18:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "proposer", + "referencedDeclaration": 2512, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1505, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1518, + "name": "Identifier", + "src": "8364:8:1" + } + ], + "id": 1519, + "name": "MemberAccess", + "src": "8364:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2254, + "type": "function (uint256,uint256) pure returns (uint256)", + "value": "sub256" + }, + "id": 1520, + "name": "Identifier", + "src": "8383:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "number", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3345, + "type": "block", + "value": "block" + }, + "id": 1521, + "name": "Identifier", + "src": "8390:5:1" + } + ], + "id": 1522, + "name": "MemberAccess", + "src": "8390:12:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1523, + "name": "Literal", + "src": "8404:1:1" + } + ], + "id": 1524, + "name": "FunctionCall", + "src": "8383:23:1" + } + ], + "id": 1525, + "name": "FunctionCall", + "src": "8345:62:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2492, + "type": "uint256", + "value": "proposalThreshold" + }, + "id": 1526, + "name": "Identifier", + "src": "8410:17:1" + } + ], + "id": 1527, + "name": "BinaryOperation", + "src": "8345:82:1" + } + ], + "id": 1528, + "name": "BinaryOperation", + "src": "8310:117:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a63616e63656c3a2070726f706f7365722061626f7665207468726573686f6c64", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::cancel: proposer above threshold\"", + "value": "GovernorBravo::cancel: proposer above threshold" + }, + "id": 1529, + "name": "Literal", + "src": "8429:49:1" + } + ], + "id": 1530, + "name": "FunctionCall", + "src": "8302:177:1" + } + ], + "id": 1531, + "name": "ExpressionStatement", + "src": "8302:177:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "canceled", + "referencedDeclaration": 2538, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1505, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1532, + "name": "Identifier", + "src": "8490:8:1" + } + ], + "id": 1534, + "name": "MemberAccess", + "src": "8490:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1535, + "name": "Literal", + "src": "8510:4:1" + } + ], + "id": 1536, + "name": "Assignment", + "src": "8490:24:1" + } + ], + "id": 1537, + "name": "ExpressionStatement", + "src": "8490:24:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1539 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "i", + "scope": 1574, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1538, + "name": "ElementaryTypeName", + "src": "8529:4:1" + } + ], + "id": 1539, + "name": "VariableDeclaration", + "src": "8529:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1540, + "name": "Literal", + "src": "8538:1:1" + } + ], + "id": 1541, + "name": "VariableDeclarationStatement", + "src": "8529:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1539, + "type": "uint256", + "value": "i" + }, + "id": 1542, + "name": "Identifier", + "src": "8541:1:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "targets", + "referencedDeclaration": 2517, + "type": "address[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1505, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1543, + "name": "Identifier", + "src": "8545:8:1" + } + ], + "id": 1544, + "name": "MemberAccess", + "src": "8545:16:1" + } + ], + "id": 1545, + "name": "MemberAccess", + "src": "8545:23:1" + } + ], + "id": 1546, + "name": "BinaryOperation", + "src": "8541:27:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1539, + "type": "uint256", + "value": "i" + }, + "id": 1547, + "name": "Identifier", + "src": "8570:1:1" + } + ], + "id": 1548, + "name": "UnaryOperation", + "src": "8570:3:1" + } + ], + "id": 1549, + "name": "ExpressionStatement", + "src": "8570:3:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "cancelTransaction", + "referencedDeclaration": 2610, + "type": "function (address,uint256,string memory,bytes memory,uint256) external" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "contract TimelockInterface", + "value": "timelock" + }, + "id": 1550, + "name": "Identifier", + "src": "8589:8:1" + } + ], + "id": 1552, + "name": "MemberAccess", + "src": "8589:26:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "targets", + "referencedDeclaration": 2517, + "type": "address[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1505, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1553, + "name": "Identifier", + "src": "8616:8:1" + } + ], + "id": 1554, + "name": "MemberAccess", + "src": "8616:16:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1539, + "type": "uint256", + "value": "i" + }, + "id": 1555, + "name": "Identifier", + "src": "8633:1:1" + } + ], + "id": 1556, + "name": "IndexAccess", + "src": "8616:19:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "values", + "referencedDeclaration": 2520, + "type": "uint256[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1505, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1557, + "name": "Identifier", + "src": "8637:8:1" + } + ], + "id": 1558, + "name": "MemberAccess", + "src": "8637:15:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1539, + "type": "uint256", + "value": "i" + }, + "id": 1559, + "name": "Identifier", + "src": "8653:1:1" + } + ], + "id": 1560, + "name": "IndexAccess", + "src": "8637:18:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "signatures", + "referencedDeclaration": 2523, + "type": "string storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1505, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1561, + "name": "Identifier", + "src": "8657:8:1" + } + ], + "id": 1562, + "name": "MemberAccess", + "src": "8657:19:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1539, + "type": "uint256", + "value": "i" + }, + "id": 1563, + "name": "Identifier", + "src": "8677:1:1" + } + ], + "id": 1564, + "name": "IndexAccess", + "src": "8657:22:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "calldatas", + "referencedDeclaration": 2526, + "type": "bytes storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1505, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1565, + "name": "Identifier", + "src": "8681:8:1" + } + ], + "id": 1566, + "name": "MemberAccess", + "src": "8681:18:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1539, + "type": "uint256", + "value": "i" + }, + "id": 1567, + "name": "Identifier", + "src": "8700:1:1" + } + ], + "id": 1568, + "name": "IndexAccess", + "src": "8681:21:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "eta", + "referencedDeclaration": 2514, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1505, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1569, + "name": "Identifier", + "src": "8704:8:1" + } + ], + "id": 1570, + "name": "MemberAccess", + "src": "8704:12:1" + } + ], + "id": 1571, + "name": "FunctionCall", + "src": "8589:128:1" + } + ], + "id": 1572, + "name": "ExpressionStatement", + "src": "8589:128:1" + } + ], + "id": 1573, + "name": "Block", + "src": "8575:153:1" + } + ], + "id": 1574, + "name": "ForStatement", + "src": "8524:204:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2430, + "type": "function (uint256)", + "value": "ProposalCanceled" + }, + "id": 1575, + "name": "Identifier", + "src": "8743:16:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1491, + "type": "uint256", + "value": "proposalId" + }, + "id": 1576, + "name": "Identifier", + "src": "8760:10:1" + } + ], + "id": 1577, + "name": "FunctionCall", + "src": "8743:28:1" + } + ], + "id": 1578, + "name": "EmitStatement", + "src": "8738:33:1" + } + ], + "id": 1579, + "name": "Block", + "src": "8112:666:1" + } + ], + "id": 1580, + "name": "FunctionDefinition", + "src": "8070:708:1" + }, + { + "attributes": { + "documentation": "@notice Gets actions of a proposal\n@param proposalId the id of the proposal\n@return Targets, values, signatures, and calldatas of the proposal actions", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getActions", + "scope": 2267, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "proposalId", + "scope": 1614, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1581, + "name": "ElementaryTypeName", + "src": "8996:4:1" + } + ], + "id": 1582, + "name": "VariableDeclaration", + "src": "8996:15:1" + } + ], + "id": 1583, + "name": "ParameterList", + "src": "8995:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "targets", + "scope": 1614, + "stateVariable": false, + "storageLocation": "memory", + "type": "address[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "address[]" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1584, + "name": "ElementaryTypeName", + "src": "9036:7:1" + } + ], + "id": 1585, + "name": "ArrayTypeName", + "src": "9036:9:1" + } + ], + "id": 1586, + "name": "VariableDeclaration", + "src": "9036:24:1" + }, + { + "attributes": { + "constant": false, + "name": "values", + "scope": 1614, + "stateVariable": false, + "storageLocation": "memory", + "type": "uint256[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "uint256[]" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1587, + "name": "ElementaryTypeName", + "src": "9062:4:1" + } + ], + "id": 1588, + "name": "ArrayTypeName", + "src": "9062:6:1" + } + ], + "id": 1589, + "name": "VariableDeclaration", + "src": "9062:20:1" + }, + { + "attributes": { + "constant": false, + "name": "signatures", + "scope": 1614, + "stateVariable": false, + "storageLocation": "memory", + "type": "string[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "string[]" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1590, + "name": "ElementaryTypeName", + "src": "9084:6:1" + } + ], + "id": 1591, + "name": "ArrayTypeName", + "src": "9084:8:1" + } + ], + "id": 1592, + "name": "VariableDeclaration", + "src": "9084:26:1" + }, + { + "attributes": { + "constant": false, + "name": "calldatas", + "scope": 1614, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "bytes[]" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1593, + "name": "ElementaryTypeName", + "src": "9112:5:1" + } + ], + "id": 1594, + "name": "ArrayTypeName", + "src": "9112:7:1" + } + ], + "id": 1595, + "name": "VariableDeclaration", + "src": "9112:24:1" + } + ], + "id": 1596, + "name": "ParameterList", + "src": "9035:102:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1598 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "p", + "scope": 1613, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct GovernorBravoDelegateStorageV1.Proposal", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "Proposal", + "referencedDeclaration": 2545, + "type": "struct GovernorBravoDelegateStorageV1.Proposal" + }, + "id": 1597, + "name": "UserDefinedTypeName", + "src": "9148:8:1" + } + ], + "id": 1598, + "name": "VariableDeclaration", + "src": "9148:18:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2504, + "type": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)", + "value": "proposals" + }, + "id": 1599, + "name": "Identifier", + "src": "9169:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1582, + "type": "uint256", + "value": "proposalId" + }, + "id": 1600, + "name": "Identifier", + "src": "9179:10:1" + } + ], + "id": 1601, + "name": "IndexAccess", + "src": "9169:21:1" + } + ], + "id": 1602, + "name": "VariableDeclarationStatement", + "src": "9148:42:1" + }, + { + "attributes": { + "functionReturnParameters": 1596 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(address[] storage ref,uint256[] storage ref,string storage ref[] storage ref,bytes storage ref[] storage ref)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "targets", + "referencedDeclaration": 2517, + "type": "address[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1598, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "p" + }, + "id": 1603, + "name": "Identifier", + "src": "9208:1:1" + } + ], + "id": 1604, + "name": "MemberAccess", + "src": "9208:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "values", + "referencedDeclaration": 2520, + "type": "uint256[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1598, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "p" + }, + "id": 1605, + "name": "Identifier", + "src": "9219:1:1" + } + ], + "id": 1606, + "name": "MemberAccess", + "src": "9219:8:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "signatures", + "referencedDeclaration": 2523, + "type": "string storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1598, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "p" + }, + "id": 1607, + "name": "Identifier", + "src": "9229:1:1" + } + ], + "id": 1608, + "name": "MemberAccess", + "src": "9229:12:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "calldatas", + "referencedDeclaration": 2526, + "type": "bytes storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1598, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "p" + }, + "id": 1609, + "name": "Identifier", + "src": "9243:1:1" + } + ], + "id": 1610, + "name": "MemberAccess", + "src": "9243:11:1" + } + ], + "id": 1611, + "name": "TupleExpression", + "src": "9207:48:1" + } + ], + "id": 1612, + "name": "Return", + "src": "9200:55:1" + } + ], + "id": 1613, + "name": "Block", + "src": "9138:124:1" + } + ], + "id": 1614, + "name": "FunctionDefinition", + "src": "8976:286:1" + }, + { + "attributes": { + "documentation": "@notice Gets the receipt for a voter on a given proposal\n@param proposalId the id of proposal\n@param voter The address of the voter\n@return The voting receipt", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getReceipt", + "scope": 2267, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "proposalId", + "scope": 1631, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1615, + "name": "ElementaryTypeName", + "src": "9496:4:1" + } + ], + "id": 1616, + "name": "VariableDeclaration", + "src": "9496:15:1" + }, + { + "attributes": { + "constant": false, + "name": "voter", + "scope": 1631, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1617, + "name": "ElementaryTypeName", + "src": "9513:7:1" + } + ], + "id": 1618, + "name": "VariableDeclaration", + "src": "9513:13:1" + } + ], + "id": 1619, + "name": "ParameterList", + "src": "9495:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1631, + "stateVariable": false, + "storageLocation": "memory", + "type": "struct GovernorBravoDelegateStorageV1.Receipt", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "Receipt", + "referencedDeclaration": 2552, + "type": "struct GovernorBravoDelegateStorageV1.Receipt" + }, + "id": 1620, + "name": "UserDefinedTypeName", + "src": "9551:7:1" + } + ], + "id": 1621, + "name": "VariableDeclaration", + "src": "9551:14:1" + } + ], + "id": 1622, + "name": "ParameterList", + "src": "9550:16:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1622 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct GovernorBravoDelegateStorageV1.Receipt storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "receipts", + "referencedDeclaration": 2544, + "type": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt storage ref)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2504, + "type": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)", + "value": "proposals" + }, + "id": 1623, + "name": "Identifier", + "src": "9584:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1616, + "type": "uint256", + "value": "proposalId" + }, + "id": 1624, + "name": "Identifier", + "src": "9594:10:1" + } + ], + "id": 1625, + "name": "IndexAccess", + "src": "9584:21:1" + } + ], + "id": 1626, + "name": "MemberAccess", + "src": "9584:30:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1618, + "type": "address", + "value": "voter" + }, + "id": 1627, + "name": "Identifier", + "src": "9615:5:1" + } + ], + "id": 1628, + "name": "IndexAccess", + "src": "9584:37:1" + } + ], + "id": 1629, + "name": "Return", + "src": "9577:44:1" + } + ], + "id": 1630, + "name": "Block", + "src": "9567:61:1" + } + ], + "id": 1631, + "name": "FunctionDefinition", + "src": "9476:152:1" + }, + { + "attributes": { + "documentation": "@notice Gets the state of a proposal\n@param proposalId The id of the proposal\n@return Proposal state", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "state", + "scope": 2267, + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "proposalId", + "scope": 1733, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1632, + "name": "ElementaryTypeName", + "src": "9791:4:1" + } + ], + "id": 1633, + "name": "VariableDeclaration", + "src": "9791:15:1" + } + ], + "id": 1634, + "name": "ParameterList", + "src": "9790:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1733, + "stateVariable": false, + "storageLocation": "default", + "type": "enum GovernorBravoDelegateStorageV1.ProposalState", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "ProposalState", + "referencedDeclaration": 2561, + "type": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "id": 1635, + "name": "UserDefinedTypeName", + "src": "9829:13:1" + } + ], + "id": 1636, + "name": "VariableDeclaration", + "src": "9829:13:1" + } + ], + "id": 1637, + "name": "ParameterList", + "src": "9828:15:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e61e89529abd71ebdc7fb8670e3797adfb63b8cd78cee477b188afbc4e6a151a", + "typeString": "literal_string \"GovernorBravo::state: invalid proposal id\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1638, + "name": "Identifier", + "src": "9854:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "&&", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2496, + "type": "uint256", + "value": "proposalCount" + }, + "id": 1639, + "name": "Identifier", + "src": "9862:13:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1633, + "type": "uint256", + "value": "proposalId" + }, + "id": 1640, + "name": "Identifier", + "src": "9879:10:1" + } + ], + "id": 1641, + "name": "BinaryOperation", + "src": "9862:27:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1633, + "type": "uint256", + "value": "proposalId" + }, + "id": 1642, + "name": "Identifier", + "src": "9893:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2494, + "type": "uint256", + "value": "initialProposalId" + }, + "id": 1643, + "name": "Identifier", + "src": "9906:17:1" + } + ], + "id": 1644, + "name": "BinaryOperation", + "src": "9893:30:1" + } + ], + "id": 1645, + "name": "BinaryOperation", + "src": "9862:61:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a73746174653a20696e76616c69642070726f706f73616c206964", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::state: invalid proposal id\"", + "value": "GovernorBravo::state: invalid proposal id" + }, + "id": 1646, + "name": "Literal", + "src": "9925:43:1" + } + ], + "id": 1647, + "name": "FunctionCall", + "src": "9854:115:1" + } + ], + "id": 1648, + "name": "ExpressionStatement", + "src": "9854:115:1" + }, + { + "attributes": { + "assignments": [ + 1650 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "proposal", + "scope": 1732, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct GovernorBravoDelegateStorageV1.Proposal", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "Proposal", + "referencedDeclaration": 2545, + "type": "struct GovernorBravoDelegateStorageV1.Proposal" + }, + "id": 1649, + "name": "UserDefinedTypeName", + "src": "9979:8:1" + } + ], + "id": 1650, + "name": "VariableDeclaration", + "src": "9979:25:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2504, + "type": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)", + "value": "proposals" + }, + "id": 1651, + "name": "Identifier", + "src": "10007:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1633, + "type": "uint256", + "value": "proposalId" + }, + "id": 1652, + "name": "Identifier", + "src": "10017:10:1" + } + ], + "id": 1653, + "name": "IndexAccess", + "src": "10007:21:1" + } + ], + "id": 1654, + "name": "VariableDeclarationStatement", + "src": "9979:49:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "canceled", + "referencedDeclaration": 2538, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1650, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1655, + "name": "Identifier", + "src": "10042:8:1" + } + ], + "id": 1656, + "name": "MemberAccess", + "src": "10042:17:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1637 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "Canceled", + "referencedDeclaration": null, + "type": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2561, + "type": "type(enum GovernorBravoDelegateStorageV1.ProposalState)", + "value": "ProposalState" + }, + "id": 1657, + "name": "Identifier", + "src": "10082:13:1" + } + ], + "id": 1658, + "name": "MemberAccess", + "src": "10082:22:1" + } + ], + "id": 1659, + "name": "Return", + "src": "10075:29:1" + } + ], + "id": 1660, + "name": "Block", + "src": "10061:54:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "number", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3345, + "type": "block", + "value": "block" + }, + "id": 1661, + "name": "Identifier", + "src": "10125:5:1" + } + ], + "id": 1662, + "name": "MemberAccess", + "src": "10125:12:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "startBlock", + "referencedDeclaration": 2528, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1650, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1663, + "name": "Identifier", + "src": "10141:8:1" + } + ], + "id": 1664, + "name": "MemberAccess", + "src": "10141:19:1" + } + ], + "id": 1665, + "name": "BinaryOperation", + "src": "10125:35:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1637 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "Pending", + "referencedDeclaration": null, + "type": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2561, + "type": "type(enum GovernorBravoDelegateStorageV1.ProposalState)", + "value": "ProposalState" + }, + "id": 1666, + "name": "Identifier", + "src": "10183:13:1" + } + ], + "id": 1667, + "name": "MemberAccess", + "src": "10183:21:1" + } + ], + "id": 1668, + "name": "Return", + "src": "10176:28:1" + } + ], + "id": 1669, + "name": "Block", + "src": "10162:53:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "number", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3345, + "type": "block", + "value": "block" + }, + "id": 1670, + "name": "Identifier", + "src": "10225:5:1" + } + ], + "id": 1671, + "name": "MemberAccess", + "src": "10225:12:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "endBlock", + "referencedDeclaration": 2530, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1650, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1672, + "name": "Identifier", + "src": "10241:8:1" + } + ], + "id": 1673, + "name": "MemberAccess", + "src": "10241:17:1" + } + ], + "id": 1674, + "name": "BinaryOperation", + "src": "10225:33:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1637 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "Active", + "referencedDeclaration": null, + "type": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2561, + "type": "type(enum GovernorBravoDelegateStorageV1.ProposalState)", + "value": "ProposalState" + }, + "id": 1675, + "name": "Identifier", + "src": "10281:13:1" + } + ], + "id": 1676, + "name": "MemberAccess", + "src": "10281:20:1" + } + ], + "id": 1677, + "name": "Return", + "src": "10274:27:1" + } + ], + "id": 1678, + "name": "Block", + "src": "10260:52:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "forVotes", + "referencedDeclaration": 2532, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1650, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1679, + "name": "Identifier", + "src": "10322:8:1" + } + ], + "id": 1680, + "name": "MemberAccess", + "src": "10322:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "againstVotes", + "referencedDeclaration": 2534, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1650, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1681, + "name": "Identifier", + "src": "10343:8:1" + } + ], + "id": 1682, + "name": "MemberAccess", + "src": "10343:21:1" + } + ], + "id": 1683, + "name": "BinaryOperation", + "src": "10322:42:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "forVotes", + "referencedDeclaration": 2532, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1650, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1684, + "name": "Identifier", + "src": "10368:8:1" + } + ], + "id": 1685, + "name": "MemberAccess", + "src": "10368:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "quorumVotes" + }, + "id": 1686, + "name": "Identifier", + "src": "10388:11:1" + } + ], + "id": 1687, + "name": "BinaryOperation", + "src": "10368:31:1" + } + ], + "id": 1688, + "name": "BinaryOperation", + "src": "10322:77:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1637 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "Defeated", + "referencedDeclaration": null, + "type": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2561, + "type": "type(enum GovernorBravoDelegateStorageV1.ProposalState)", + "value": "ProposalState" + }, + "id": 1689, + "name": "Identifier", + "src": "10422:13:1" + } + ], + "id": 1690, + "name": "MemberAccess", + "src": "10422:22:1" + } + ], + "id": 1691, + "name": "Return", + "src": "10415:29:1" + } + ], + "id": 1692, + "name": "Block", + "src": "10401:54:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "eta", + "referencedDeclaration": 2514, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1650, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1693, + "name": "Identifier", + "src": "10465:8:1" + } + ], + "id": 1694, + "name": "MemberAccess", + "src": "10465:12:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1695, + "name": "Literal", + "src": "10481:1:1" + } + ], + "id": 1696, + "name": "BinaryOperation", + "src": "10465:17:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1637 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "Succeeded", + "referencedDeclaration": null, + "type": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2561, + "type": "type(enum GovernorBravoDelegateStorageV1.ProposalState)", + "value": "ProposalState" + }, + "id": 1697, + "name": "Identifier", + "src": "10505:13:1" + } + ], + "id": 1698, + "name": "MemberAccess", + "src": "10505:23:1" + } + ], + "id": 1699, + "name": "Return", + "src": "10498:30:1" + } + ], + "id": 1700, + "name": "Block", + "src": "10484:55:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "executed", + "referencedDeclaration": 2540, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1650, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1701, + "name": "Identifier", + "src": "10549:8:1" + } + ], + "id": 1702, + "name": "MemberAccess", + "src": "10549:17:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1637 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "Executed", + "referencedDeclaration": null, + "type": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2561, + "type": "type(enum GovernorBravoDelegateStorageV1.ProposalState)", + "value": "ProposalState" + }, + "id": 1703, + "name": "Identifier", + "src": "10589:13:1" + } + ], + "id": 1704, + "name": "MemberAccess", + "src": "10589:22:1" + } + ], + "id": 1705, + "name": "Return", + "src": "10582:29:1" + } + ], + "id": 1706, + "name": "Block", + "src": "10568:54:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "timestamp", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3345, + "type": "block", + "value": "block" + }, + "id": 1707, + "name": "Identifier", + "src": "10632:5:1" + } + ], + "id": 1708, + "name": "MemberAccess", + "src": "10632:15:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2233, + "type": "function (uint256,uint256) pure returns (uint256)", + "value": "add256" + }, + "id": 1709, + "name": "Identifier", + "src": "10651:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "eta", + "referencedDeclaration": 2514, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1650, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1710, + "name": "Identifier", + "src": "10658:8:1" + } + ], + "id": 1711, + "name": "MemberAccess", + "src": "10658:12:1" + }, + { + "attributes": { + "argumentTypes": null, + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "GRACE_PERIOD", + "referencedDeclaration": 2572, + "type": "function () view external returns (uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "contract TimelockInterface", + "value": "timelock" + }, + "id": 1712, + "name": "Identifier", + "src": "10672:8:1" + } + ], + "id": 1713, + "name": "MemberAccess", + "src": "10672:21:1" + } + ], + "id": 1714, + "name": "FunctionCall", + "src": "10672:23:1" + } + ], + "id": 1715, + "name": "FunctionCall", + "src": "10651:45:1" + } + ], + "id": 1716, + "name": "BinaryOperation", + "src": "10632:64:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1637 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "Expired", + "referencedDeclaration": null, + "type": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2561, + "type": "type(enum GovernorBravoDelegateStorageV1.ProposalState)", + "value": "ProposalState" + }, + "id": 1717, + "name": "Identifier", + "src": "10719:13:1" + } + ], + "id": 1718, + "name": "MemberAccess", + "src": "10719:21:1" + } + ], + "id": 1719, + "name": "Return", + "src": "10712:28:1" + } + ], + "id": 1720, + "name": "Block", + "src": "10698:53:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1637 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "Queued", + "referencedDeclaration": null, + "type": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2561, + "type": "type(enum GovernorBravoDelegateStorageV1.ProposalState)", + "value": "ProposalState" + }, + "id": 1721, + "name": "Identifier", + "src": "10778:13:1" + } + ], + "id": 1722, + "name": "MemberAccess", + "src": "10778:20:1" + } + ], + "id": 1723, + "name": "Return", + "src": "10771:27:1" + } + ], + "id": 1724, + "name": "Block", + "src": "10757:52:1" + } + ], + "id": 1725, + "name": "IfStatement", + "src": "10628:181:1" + } + ], + "id": 1726, + "name": "IfStatement", + "src": "10545:264:1" + } + ], + "id": 1727, + "name": "IfStatement", + "src": "10461:348:1" + } + ], + "id": 1728, + "name": "IfStatement", + "src": "10318:491:1" + } + ], + "id": 1729, + "name": "IfStatement", + "src": "10221:588:1" + } + ], + "id": 1730, + "name": "IfStatement", + "src": "10121:688:1" + } + ], + "id": 1731, + "name": "IfStatement", + "src": "10038:771:1" + } + ], + "id": 1732, + "name": "Block", + "src": "9844:971:1" + } + ], + "id": 1733, + "name": "FunctionDefinition", + "src": "9776:1039:1" + }, + { + "attributes": { + "documentation": "@notice Cast a vote for a proposal\n@param proposalId The id of the proposal to vote on\n@param support The support value for the vote. 0=against, 1=for, 2=abstain", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "castVote", + "scope": 2267, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "proposalId", + "scope": 1755, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1734, + "name": "ElementaryTypeName", + "src": "11042:4:1" + } + ], + "id": 1735, + "name": "VariableDeclaration", + "src": "11042:15:1" + }, + { + "attributes": { + "constant": false, + "name": "support", + "scope": 1755, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 1736, + "name": "ElementaryTypeName", + "src": "11059:5:1" + } + ], + "id": 1737, + "name": "VariableDeclaration", + "src": "11059:13:1" + } + ], + "id": 1738, + "name": "ParameterList", + "src": "11041:32:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1739, + "name": "ParameterList", + "src": "11083:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2426, + "type": "function (address,uint256,uint8,uint256,string memory)", + "value": "VoteCast" + }, + "id": 1740, + "name": "Identifier", + "src": "11098:8:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 1741, + "name": "Identifier", + "src": "11107:3:1" + } + ], + "id": 1742, + "name": "MemberAccess", + "src": "11107:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1735, + "type": "uint256", + "value": "proposalId" + }, + "id": 1743, + "name": "Identifier", + "src": "11119:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1737, + "type": "uint8", + "value": "support" + }, + "id": 1744, + "name": "Identifier", + "src": "11131:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint96", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1988, + "type": "function (address,uint256,uint8) returns (uint96)", + "value": "castVoteInternal" + }, + "id": 1745, + "name": "Identifier", + "src": "11140:16:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 1746, + "name": "Identifier", + "src": "11157:3:1" + } + ], + "id": 1747, + "name": "MemberAccess", + "src": "11157:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1735, + "type": "uint256", + "value": "proposalId" + }, + "id": 1748, + "name": "Identifier", + "src": "11169:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1737, + "type": "uint8", + "value": "support" + }, + "id": 1749, + "name": "Identifier", + "src": "11181:7:1" + } + ], + "id": 1750, + "name": "FunctionCall", + "src": "11140:49:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 1751, + "name": "Literal", + "src": "11191:2:1" + } + ], + "id": 1752, + "name": "FunctionCall", + "src": "11098:96:1" + } + ], + "id": 1753, + "name": "EmitStatement", + "src": "11093:101:1" + } + ], + "id": 1754, + "name": "Block", + "src": "11083:118:1" + } + ], + "id": 1755, + "name": "FunctionDefinition", + "src": "11024:177:1" + }, + { + "attributes": { + "documentation": "@notice Cast a vote for a proposal with a reason\n@param proposalId The id of the proposal to vote on\n@param support The support value for the vote. 0=against, 1=for, 2=abstain\n@param reason The reason given for the vote by the voter", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "castVoteWithReason", + "scope": 2267, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "proposalId", + "scope": 1779, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1756, + "name": "ElementaryTypeName", + "src": "11517:4:1" + } + ], + "id": 1757, + "name": "VariableDeclaration", + "src": "11517:15:1" + }, + { + "attributes": { + "constant": false, + "name": "support", + "scope": 1779, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 1758, + "name": "ElementaryTypeName", + "src": "11534:5:1" + } + ], + "id": 1759, + "name": "VariableDeclaration", + "src": "11534:13:1" + }, + { + "attributes": { + "constant": false, + "name": "reason", + "scope": 1779, + "stateVariable": false, + "storageLocation": "calldata", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1760, + "name": "ElementaryTypeName", + "src": "11549:6:1" + } + ], + "id": 1761, + "name": "VariableDeclaration", + "src": "11549:22:1" + } + ], + "id": 1762, + "name": "ParameterList", + "src": "11516:56:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1763, + "name": "ParameterList", + "src": "11582:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2426, + "type": "function (address,uint256,uint8,uint256,string memory)", + "value": "VoteCast" + }, + "id": 1764, + "name": "Identifier", + "src": "11597:8:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 1765, + "name": "Identifier", + "src": "11606:3:1" + } + ], + "id": 1766, + "name": "MemberAccess", + "src": "11606:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1757, + "type": "uint256", + "value": "proposalId" + }, + "id": 1767, + "name": "Identifier", + "src": "11618:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1759, + "type": "uint8", + "value": "support" + }, + "id": 1768, + "name": "Identifier", + "src": "11630:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint96", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1988, + "type": "function (address,uint256,uint8) returns (uint96)", + "value": "castVoteInternal" + }, + "id": 1769, + "name": "Identifier", + "src": "11639:16:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 1770, + "name": "Identifier", + "src": "11656:3:1" + } + ], + "id": 1771, + "name": "MemberAccess", + "src": "11656:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1757, + "type": "uint256", + "value": "proposalId" + }, + "id": 1772, + "name": "Identifier", + "src": "11668:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1759, + "type": "uint8", + "value": "support" + }, + "id": 1773, + "name": "Identifier", + "src": "11680:7:1" + } + ], + "id": 1774, + "name": "FunctionCall", + "src": "11639:49:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1761, + "type": "string calldata", + "value": "reason" + }, + "id": 1775, + "name": "Identifier", + "src": "11690:6:1" + } + ], + "id": 1776, + "name": "FunctionCall", + "src": "11597:100:1" + } + ], + "id": 1777, + "name": "EmitStatement", + "src": "11592:105:1" + } + ], + "id": 1778, + "name": "Block", + "src": "11582:122:1" + } + ], + "id": 1779, + "name": "FunctionDefinition", + "src": "11489:215:1" + }, + { + "attributes": { + "documentation": "@notice Cast a vote for a proposal by signature\n@dev External function that accepts EIP-712 signatures for voting on proposals.", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "castVoteBySig", + "scope": 2267, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "proposalId", + "scope": 1864, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1780, + "name": "ElementaryTypeName", + "src": "11894:4:1" + } + ], + "id": 1781, + "name": "VariableDeclaration", + "src": "11894:15:1" + }, + { + "attributes": { + "constant": false, + "name": "support", + "scope": 1864, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 1782, + "name": "ElementaryTypeName", + "src": "11911:5:1" + } + ], + "id": 1783, + "name": "VariableDeclaration", + "src": "11911:13:1" + }, + { + "attributes": { + "constant": false, + "name": "v", + "scope": 1864, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 1784, + "name": "ElementaryTypeName", + "src": "11926:5:1" + } + ], + "id": 1785, + "name": "VariableDeclaration", + "src": "11926:7:1" + }, + { + "attributes": { + "constant": false, + "name": "r", + "scope": 1864, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1786, + "name": "ElementaryTypeName", + "src": "11935:7:1" + } + ], + "id": 1787, + "name": "VariableDeclaration", + "src": "11935:9:1" + }, + { + "attributes": { + "constant": false, + "name": "s", + "scope": 1864, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1788, + "name": "ElementaryTypeName", + "src": "11946:7:1" + } + ], + "id": 1789, + "name": "VariableDeclaration", + "src": "11946:9:1" + } + ], + "id": 1790, + "name": "ParameterList", + "src": "11893:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1791, + "name": "ParameterList", + "src": "11966:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1793 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "domainSeparator", + "scope": 1863, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1792, + "name": "ElementaryTypeName", + "src": "11976:7:1" + } + ], + "id": 1793, + "name": "VariableDeclaration", + "src": "11976:23:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3349, + "type": "function (bytes memory) pure returns (bytes32)", + "value": "keccak256" + }, + "id": 1794, + "name": "Identifier", + "src": "12002:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encode", + "referencedDeclaration": null, + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3342, + "type": "abi", + "value": "abi" + }, + "id": 1795, + "name": "Identifier", + "src": "12012:3:1" + } + ], + "id": 1796, + "name": "MemberAccess", + "src": "12012:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 997, + "type": "bytes32", + "value": "DOMAIN_TYPEHASH" + }, + "id": 1797, + "name": "Identifier", + "src": "12023:15:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3349, + "type": "function (bytes memory) pure returns (bytes32)", + "value": "keccak256" + }, + "id": 1798, + "name": "Identifier", + "src": "12040:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)", + "value": "bytes" + }, + "id": 1799, + "name": "ElementaryTypeNameExpression", + "src": "12050:5:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 968, + "type": "string memory", + "value": "name" + }, + "id": 1800, + "name": "Identifier", + "src": "12056:4:1" + } + ], + "id": 1801, + "name": "FunctionCall", + "src": "12050:11:1" + } + ], + "id": 1802, + "name": "FunctionCall", + "src": "12040:22:1" + }, + { + "attributes": { + "argumentTypes": null, + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2266, + "type": "function () pure returns (uint256)", + "value": "getChainIdInternal" + }, + "id": 1803, + "name": "Identifier", + "src": "12064:18:1" + } + ], + "id": 1804, + "name": "FunctionCall", + "src": "12064:20:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_GovernorBravoDelegate_$2267", + "typeString": "contract GovernorBravoDelegate" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 1805, + "name": "ElementaryTypeNameExpression", + "src": "12086:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3381, + "type": "contract GovernorBravoDelegate", + "value": "this" + }, + "id": 1806, + "name": "Identifier", + "src": "12094:4:1" + } + ], + "id": 1807, + "name": "FunctionCall", + "src": "12086:13:1" + } + ], + "id": 1808, + "name": "FunctionCall", + "src": "12012:88:1" + } + ], + "id": 1809, + "name": "FunctionCall", + "src": "12002:99:1" + } + ], + "id": 1810, + "name": "VariableDeclarationStatement", + "src": "11976:125:1" + }, + { + "attributes": { + "assignments": [ + 1812 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "structHash", + "scope": 1863, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1811, + "name": "ElementaryTypeName", + "src": "12111:7:1" + } + ], + "id": 1812, + "name": "VariableDeclaration", + "src": "12111:18:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3349, + "type": "function (bytes memory) pure returns (bytes32)", + "value": "keccak256" + }, + "id": 1813, + "name": "Identifier", + "src": "12132:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encode", + "referencedDeclaration": null, + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3342, + "type": "abi", + "value": "abi" + }, + "id": 1814, + "name": "Identifier", + "src": "12142:3:1" + } + ], + "id": 1815, + "name": "MemberAccess", + "src": "12142:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1002, + "type": "bytes32", + "value": "BALLOT_TYPEHASH" + }, + "id": 1816, + "name": "Identifier", + "src": "12153:15:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1781, + "type": "uint256", + "value": "proposalId" + }, + "id": 1817, + "name": "Identifier", + "src": "12170:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1783, + "type": "uint8", + "value": "support" + }, + "id": 1818, + "name": "Identifier", + "src": "12182:7:1" + } + ], + "id": 1819, + "name": "FunctionCall", + "src": "12142:48:1" + } + ], + "id": 1820, + "name": "FunctionCall", + "src": "12132:59:1" + } + ], + "id": 1821, + "name": "VariableDeclarationStatement", + "src": "12111:80:1" + }, + { + "attributes": { + "assignments": [ + 1823 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "digest", + "scope": 1863, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1822, + "name": "ElementaryTypeName", + "src": "12201:7:1" + } + ], + "id": 1823, + "name": "VariableDeclaration", + "src": "12201:14:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3349, + "type": "function (bytes memory) pure returns (bytes32)", + "value": "keccak256" + }, + "id": 1824, + "name": "Identifier", + "src": "12218:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "referencedDeclaration": null, + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3342, + "type": "abi", + "value": "abi" + }, + "id": 1825, + "name": "Identifier", + "src": "12228:3:1" + } + ], + "id": 1826, + "name": "MemberAccess", + "src": "12228:16:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "1901", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"\u0019\u0001\"", + "value": "\u0019\u0001" + }, + "id": 1827, + "name": "Literal", + "src": "12245:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1793, + "type": "bytes32", + "value": "domainSeparator" + }, + "id": 1828, + "name": "Identifier", + "src": "12257:15:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1812, + "type": "bytes32", + "value": "structHash" + }, + "id": 1829, + "name": "Identifier", + "src": "12274:10:1" + } + ], + "id": 1830, + "name": "FunctionCall", + "src": "12228:57:1" + } + ], + "id": 1831, + "name": "FunctionCall", + "src": "12218:68:1" + } + ], + "id": 1832, + "name": "VariableDeclarationStatement", + "src": "12201:85:1" + }, + { + "attributes": { + "assignments": [ + 1834 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "signatory", + "scope": 1863, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1833, + "name": "ElementaryTypeName", + "src": "12296:7:1" + } + ], + "id": 1834, + "name": "VariableDeclaration", + "src": "12296:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3347, + "type": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)", + "value": "ecrecover" + }, + "id": 1835, + "name": "Identifier", + "src": "12316:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1823, + "type": "bytes32", + "value": "digest" + }, + "id": 1836, + "name": "Identifier", + "src": "12326:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1785, + "type": "uint8", + "value": "v" + }, + "id": 1837, + "name": "Identifier", + "src": "12334:1:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1787, + "type": "bytes32", + "value": "r" + }, + "id": 1838, + "name": "Identifier", + "src": "12337:1:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1789, + "type": "bytes32", + "value": "s" + }, + "id": 1839, + "name": "Identifier", + "src": "12340:1:1" + } + ], + "id": 1840, + "name": "FunctionCall", + "src": "12316:26:1" + } + ], + "id": 1841, + "name": "VariableDeclarationStatement", + "src": "12296:46:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_606b6b9610d6d8b33c2c9914e54c767f3ea3c0ecf287b2262a751d4ec2b89d60", + "typeString": "literal_string \"GovernorBravo::castVoteBySig: invalid signature\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1842, + "name": "Identifier", + "src": "12352:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1834, + "type": "address", + "value": "signatory" + }, + "id": 1843, + "name": "Identifier", + "src": "12360:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 1844, + "name": "ElementaryTypeNameExpression", + "src": "12373:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1845, + "name": "Literal", + "src": "12381:1:1" + } + ], + "id": 1846, + "name": "FunctionCall", + "src": "12373:10:1" + } + ], + "id": 1847, + "name": "BinaryOperation", + "src": "12360:23:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a63617374566f746542795369673a20696e76616c6964207369676e6174757265", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::castVoteBySig: invalid signature\"", + "value": "GovernorBravo::castVoteBySig: invalid signature" + }, + "id": 1848, + "name": "Literal", + "src": "12385:49:1" + } + ], + "id": 1849, + "name": "FunctionCall", + "src": "12352:83:1" + } + ], + "id": 1850, + "name": "ExpressionStatement", + "src": "12352:83:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2426, + "type": "function (address,uint256,uint8,uint256,string memory)", + "value": "VoteCast" + }, + "id": 1851, + "name": "Identifier", + "src": "12450:8:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1834, + "type": "address", + "value": "signatory" + }, + "id": 1852, + "name": "Identifier", + "src": "12459:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1781, + "type": "uint256", + "value": "proposalId" + }, + "id": 1853, + "name": "Identifier", + "src": "12470:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1783, + "type": "uint8", + "value": "support" + }, + "id": 1854, + "name": "Identifier", + "src": "12482:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint96", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1988, + "type": "function (address,uint256,uint8) returns (uint96)", + "value": "castVoteInternal" + }, + "id": 1855, + "name": "Identifier", + "src": "12491:16:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1834, + "type": "address", + "value": "signatory" + }, + "id": 1856, + "name": "Identifier", + "src": "12508:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1781, + "type": "uint256", + "value": "proposalId" + }, + "id": 1857, + "name": "Identifier", + "src": "12519:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1783, + "type": "uint8", + "value": "support" + }, + "id": 1858, + "name": "Identifier", + "src": "12531:7:1" + } + ], + "id": 1859, + "name": "FunctionCall", + "src": "12491:48:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 1860, + "name": "Literal", + "src": "12541:2:1" + } + ], + "id": 1861, + "name": "FunctionCall", + "src": "12450:94:1" + } + ], + "id": 1862, + "name": "EmitStatement", + "src": "12445:99:1" + } + ], + "id": 1863, + "name": "Block", + "src": "11966:585:1" + } + ], + "id": 1864, + "name": "FunctionDefinition", + "src": "11871:680:1" + }, + { + "attributes": { + "documentation": "@notice Internal function that caries out voting logic\n@param voter The voter that is casting their vote\n@param proposalId The id of the proposal to vote on\n@param support The support value for the vote. 0=against, 1=for, 2=abstain\n@return The number of votes cast", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "castVoteInternal", + "scope": 2267, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "voter", + "scope": 1988, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1865, + "name": "ElementaryTypeName", + "src": "12905:7:1" + } + ], + "id": 1866, + "name": "VariableDeclaration", + "src": "12905:13:1" + }, + { + "attributes": { + "constant": false, + "name": "proposalId", + "scope": 1988, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1867, + "name": "ElementaryTypeName", + "src": "12920:4:1" + } + ], + "id": 1868, + "name": "VariableDeclaration", + "src": "12920:15:1" + }, + { + "attributes": { + "constant": false, + "name": "support", + "scope": 1988, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 1869, + "name": "ElementaryTypeName", + "src": "12937:5:1" + } + ], + "id": 1870, + "name": "VariableDeclaration", + "src": "12937:13:1" + } + ], + "id": 1871, + "name": "ParameterList", + "src": "12904:47:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1988, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 1872, + "name": "ElementaryTypeName", + "src": "12970:6:1" + } + ], + "id": 1873, + "name": "VariableDeclaration", + "src": "12970:6:1" + } + ], + "id": 1874, + "name": "ParameterList", + "src": "12969:8:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4d8168be21aac620ed72791717aa2911167b316e34d177cc4b315ea45590cb98", + "typeString": "literal_string \"GovernorBravo::castVoteInternal: voting is closed\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1875, + "name": "Identifier", + "src": "12988:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_ProposalState_$2561", + "typeString": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "enum GovernorBravoDelegateStorageV1.ProposalState", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1733, + "type": "function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)", + "value": "state" + }, + "id": 1876, + "name": "Identifier", + "src": "12996:5:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1868, + "type": "uint256", + "value": "proposalId" + }, + "id": 1877, + "name": "Identifier", + "src": "13002:10:1" + } + ], + "id": 1878, + "name": "FunctionCall", + "src": "12996:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "Active", + "referencedDeclaration": null, + "type": "enum GovernorBravoDelegateStorageV1.ProposalState" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2561, + "type": "type(enum GovernorBravoDelegateStorageV1.ProposalState)", + "value": "ProposalState" + }, + "id": 1879, + "name": "Identifier", + "src": "13017:13:1" + } + ], + "id": 1880, + "name": "MemberAccess", + "src": "13017:20:1" + } + ], + "id": 1881, + "name": "BinaryOperation", + "src": "12996:41:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a20766f74696e6720697320636c6f736564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::castVoteInternal: voting is closed\"", + "value": "GovernorBravo::castVoteInternal: voting is closed" + }, + "id": 1882, + "name": "Literal", + "src": "13039:51:1" + } + ], + "id": 1883, + "name": "FunctionCall", + "src": "12988:103:1" + } + ], + "id": 1884, + "name": "ExpressionStatement", + "src": "12988:103:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_08ca01306f73add02bd237ec4eb9b88988c263b20bc18a865949156e713112d3", + "typeString": "literal_string \"GovernorBravo::castVoteInternal: invalid vote type\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1885, + "name": "Identifier", + "src": "13101:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1870, + "type": "uint8", + "value": "support" + }, + "id": 1886, + "name": "Identifier", + "src": "13109:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "32", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 2", + "value": "2" + }, + "id": 1887, + "name": "Literal", + "src": "13120:1:1" + } + ], + "id": 1888, + "name": "BinaryOperation", + "src": "13109:12:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a20696e76616c696420766f74652074797065", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::castVoteInternal: invalid vote type\"", + "value": "GovernorBravo::castVoteInternal: invalid vote type" + }, + "id": 1889, + "name": "Literal", + "src": "13123:52:1" + } + ], + "id": 1890, + "name": "FunctionCall", + "src": "13101:75:1" + } + ], + "id": 1891, + "name": "ExpressionStatement", + "src": "13101:75:1" + }, + { + "attributes": { + "assignments": [ + 1893 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "proposal", + "scope": 1987, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct GovernorBravoDelegateStorageV1.Proposal", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "Proposal", + "referencedDeclaration": 2545, + "type": "struct GovernorBravoDelegateStorageV1.Proposal" + }, + "id": 1892, + "name": "UserDefinedTypeName", + "src": "13186:8:1" + } + ], + "id": 1893, + "name": "VariableDeclaration", + "src": "13186:25:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2504, + "type": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)", + "value": "proposals" + }, + "id": 1894, + "name": "Identifier", + "src": "13214:9:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1868, + "type": "uint256", + "value": "proposalId" + }, + "id": 1895, + "name": "Identifier", + "src": "13224:10:1" + } + ], + "id": 1896, + "name": "IndexAccess", + "src": "13214:21:1" + } + ], + "id": 1897, + "name": "VariableDeclarationStatement", + "src": "13186:49:1" + }, + { + "attributes": { + "assignments": [ + 1899 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "receipt", + "scope": 1987, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct GovernorBravoDelegateStorageV1.Receipt", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "Receipt", + "referencedDeclaration": 2552, + "type": "struct GovernorBravoDelegateStorageV1.Receipt" + }, + "id": 1898, + "name": "UserDefinedTypeName", + "src": "13245:7:1" + } + ], + "id": 1899, + "name": "VariableDeclaration", + "src": "13245:23:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct GovernorBravoDelegateStorageV1.Receipt storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "receipts", + "referencedDeclaration": 2544, + "type": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt storage ref)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1893, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1900, + "name": "Identifier", + "src": "13271:8:1" + } + ], + "id": 1901, + "name": "MemberAccess", + "src": "13271:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1866, + "type": "address", + "value": "voter" + }, + "id": 1902, + "name": "Identifier", + "src": "13289:5:1" + } + ], + "id": 1903, + "name": "IndexAccess", + "src": "13271:24:1" + } + ], + "id": 1904, + "name": "VariableDeclarationStatement", + "src": "13245:50:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4db4ad45458d858d12fec9cccfea17def9275e2163ec97403e3da078a04e1a11", + "typeString": "literal_string \"GovernorBravo::castVoteInternal: voter already voted\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1905, + "name": "Identifier", + "src": "13305:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "hasVoted", + "referencedDeclaration": 2547, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1899, + "type": "struct GovernorBravoDelegateStorageV1.Receipt storage pointer", + "value": "receipt" + }, + "id": 1906, + "name": "Identifier", + "src": "13313:7:1" + } + ], + "id": 1907, + "name": "MemberAccess", + "src": "13313:16:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1908, + "name": "Literal", + "src": "13333:5:1" + } + ], + "id": 1909, + "name": "BinaryOperation", + "src": "13313:25:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a20766f74657220616c726561647920766f746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::castVoteInternal: voter already voted\"", + "value": "GovernorBravo::castVoteInternal: voter already voted" + }, + "id": 1910, + "name": "Literal", + "src": "13340:54:1" + } + ], + "id": 1911, + "name": "FunctionCall", + "src": "13305:90:1" + } + ], + "id": 1912, + "name": "ExpressionStatement", + "src": "13305:90:1" + }, + { + "attributes": { + "assignments": [ + 1914 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "votes", + "scope": 1987, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 1913, + "name": "ElementaryTypeName", + "src": "13405:6:1" + } + ], + "id": 1914, + "name": "VariableDeclaration", + "src": "13405:12:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint96", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "getPriorVotes", + "referencedDeclaration": 2635, + "type": "function (address,uint256) view external returns (uint96)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2500, + "type": "contract CompInterface", + "value": "comp" + }, + "id": 1915, + "name": "Identifier", + "src": "13420:4:1" + } + ], + "id": 1916, + "name": "MemberAccess", + "src": "13420:18:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1866, + "type": "address", + "value": "voter" + }, + "id": 1917, + "name": "Identifier", + "src": "13439:5:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "startBlock", + "referencedDeclaration": 2528, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1893, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1918, + "name": "Identifier", + "src": "13446:8:1" + } + ], + "id": 1919, + "name": "MemberAccess", + "src": "13446:19:1" + } + ], + "id": 1920, + "name": "FunctionCall", + "src": "13420:46:1" + } + ], + "id": 1921, + "name": "VariableDeclarationStatement", + "src": "13405:61:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1870, + "type": "uint8", + "value": "support" + }, + "id": 1922, + "name": "Identifier", + "src": "13481:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1923, + "name": "Literal", + "src": "13492:1:1" + } + ], + "id": 1924, + "name": "BinaryOperation", + "src": "13481:12:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "againstVotes", + "referencedDeclaration": 2534, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1893, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1925, + "name": "Identifier", + "src": "13509:8:1" + } + ], + "id": 1927, + "name": "MemberAccess", + "src": "13509:21:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2233, + "type": "function (uint256,uint256) pure returns (uint256)", + "value": "add256" + }, + "id": 1928, + "name": "Identifier", + "src": "13533:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "againstVotes", + "referencedDeclaration": 2534, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1893, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1929, + "name": "Identifier", + "src": "13540:8:1" + } + ], + "id": 1930, + "name": "MemberAccess", + "src": "13540:21:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1914, + "type": "uint96", + "value": "votes" + }, + "id": 1931, + "name": "Identifier", + "src": "13563:5:1" + } + ], + "id": 1932, + "name": "FunctionCall", + "src": "13533:36:1" + } + ], + "id": 1933, + "name": "Assignment", + "src": "13509:60:1" + } + ], + "id": 1934, + "name": "ExpressionStatement", + "src": "13509:60:1" + } + ], + "id": 1935, + "name": "Block", + "src": "13495:85:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1870, + "type": "uint8", + "value": "support" + }, + "id": 1936, + "name": "Identifier", + "src": "13590:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1937, + "name": "Literal", + "src": "13601:1:1" + } + ], + "id": 1938, + "name": "BinaryOperation", + "src": "13590:12:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "forVotes", + "referencedDeclaration": 2532, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1893, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1939, + "name": "Identifier", + "src": "13618:8:1" + } + ], + "id": 1941, + "name": "MemberAccess", + "src": "13618:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2233, + "type": "function (uint256,uint256) pure returns (uint256)", + "value": "add256" + }, + "id": 1942, + "name": "Identifier", + "src": "13638:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "forVotes", + "referencedDeclaration": 2532, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1893, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1943, + "name": "Identifier", + "src": "13645:8:1" + } + ], + "id": 1944, + "name": "MemberAccess", + "src": "13645:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1914, + "type": "uint96", + "value": "votes" + }, + "id": 1945, + "name": "Identifier", + "src": "13664:5:1" + } + ], + "id": 1946, + "name": "FunctionCall", + "src": "13638:32:1" + } + ], + "id": 1947, + "name": "Assignment", + "src": "13618:52:1" + } + ], + "id": 1948, + "name": "ExpressionStatement", + "src": "13618:52:1" + } + ], + "id": 1949, + "name": "Block", + "src": "13604:77:1" + }, + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1870, + "type": "uint8", + "value": "support" + }, + "id": 1950, + "name": "Identifier", + "src": "13691:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "32", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 2", + "value": "2" + }, + "id": 1951, + "name": "Literal", + "src": "13702:1:1" + } + ], + "id": 1952, + "name": "BinaryOperation", + "src": "13691:12:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "abstainVotes", + "referencedDeclaration": 2536, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1893, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1953, + "name": "Identifier", + "src": "13719:8:1" + } + ], + "id": 1955, + "name": "MemberAccess", + "src": "13719:21:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2233, + "type": "function (uint256,uint256) pure returns (uint256)", + "value": "add256" + }, + "id": 1956, + "name": "Identifier", + "src": "13743:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "abstainVotes", + "referencedDeclaration": 2536, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1893, + "type": "struct GovernorBravoDelegateStorageV1.Proposal storage pointer", + "value": "proposal" + }, + "id": 1957, + "name": "Identifier", + "src": "13750:8:1" + } + ], + "id": 1958, + "name": "MemberAccess", + "src": "13750:21:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1914, + "type": "uint96", + "value": "votes" + }, + "id": 1959, + "name": "Identifier", + "src": "13773:5:1" + } + ], + "id": 1960, + "name": "FunctionCall", + "src": "13743:36:1" + } + ], + "id": 1961, + "name": "Assignment", + "src": "13719:60:1" + } + ], + "id": 1962, + "name": "ExpressionStatement", + "src": "13719:60:1" + } + ], + "id": 1963, + "name": "Block", + "src": "13705:85:1" + } + ], + "id": 1964, + "name": "IfStatement", + "src": "13687:103:1" + } + ], + "id": 1965, + "name": "IfStatement", + "src": "13586:204:1" + } + ], + "id": 1966, + "name": "IfStatement", + "src": "13477:313:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "hasVoted", + "referencedDeclaration": 2547, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1899, + "type": "struct GovernorBravoDelegateStorageV1.Receipt storage pointer", + "value": "receipt" + }, + "id": 1967, + "name": "Identifier", + "src": "13800:7:1" + } + ], + "id": 1969, + "name": "MemberAccess", + "src": "13800:16:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1970, + "name": "Literal", + "src": "13819:4:1" + } + ], + "id": 1971, + "name": "Assignment", + "src": "13800:23:1" + } + ], + "id": 1972, + "name": "ExpressionStatement", + "src": "13800:23:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "support", + "referencedDeclaration": 2549, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1899, + "type": "struct GovernorBravoDelegateStorageV1.Receipt storage pointer", + "value": "receipt" + }, + "id": 1973, + "name": "Identifier", + "src": "13833:7:1" + } + ], + "id": 1975, + "name": "MemberAccess", + "src": "13833:15:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1870, + "type": "uint8", + "value": "support" + }, + "id": 1976, + "name": "Identifier", + "src": "13851:7:1" + } + ], + "id": 1977, + "name": "Assignment", + "src": "13833:25:1" + } + ], + "id": 1978, + "name": "ExpressionStatement", + "src": "13833:25:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "votes", + "referencedDeclaration": 2551, + "type": "uint96" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1899, + "type": "struct GovernorBravoDelegateStorageV1.Receipt storage pointer", + "value": "receipt" + }, + "id": 1979, + "name": "Identifier", + "src": "13868:7:1" + } + ], + "id": 1981, + "name": "MemberAccess", + "src": "13868:13:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1914, + "type": "uint96", + "value": "votes" + }, + "id": 1982, + "name": "Identifier", + "src": "13884:5:1" + } + ], + "id": 1983, + "name": "Assignment", + "src": "13868:21:1" + } + ], + "id": 1984, + "name": "ExpressionStatement", + "src": "13868:21:1" + }, + { + "attributes": { + "functionReturnParameters": 1874 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1914, + "type": "uint96", + "value": "votes" + }, + "id": 1985, + "name": "Identifier", + "src": "13907:5:1" + } + ], + "id": 1986, + "name": "Return", + "src": "13900:12:1" + } + ], + "id": 1987, + "name": "Block", + "src": "12978:941:1" + } + ], + "id": 1988, + "name": "FunctionDefinition", + "src": "12879:1040:1" + }, + { + "attributes": { + "documentation": "@notice Admin function for setting the voting delay\n@param newVotingDelay new voting delay, in blocks", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setVotingDelay", + "scope": 2267, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "newVotingDelay", + "scope": 2026, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1989, + "name": "ElementaryTypeName", + "src": "14085:4:1" + } + ], + "id": 1990, + "name": "VariableDeclaration", + "src": "14085:19:1" + } + ], + "id": 1991, + "name": "ParameterList", + "src": "14084:21:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1992, + "name": "ParameterList", + "src": "14115:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_279b08a3b3d49785c097a8d73d57a97d8e69c25d04ec90900db7349adf8b6746", + "typeString": "literal_string \"GovernorBravo::_setVotingDelay: admin only\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1993, + "name": "Identifier", + "src": "14125:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 1994, + "name": "Identifier", + "src": "14133:3:1" + } + ], + "id": 1995, + "name": "MemberAccess", + "src": "14133:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2479, + "type": "address", + "value": "admin" + }, + "id": 1996, + "name": "Identifier", + "src": "14147:5:1" + } + ], + "id": 1997, + "name": "BinaryOperation", + "src": "14133:19:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a5f736574566f74696e6744656c61793a2061646d696e206f6e6c79", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::_setVotingDelay: admin only\"", + "value": "GovernorBravo::_setVotingDelay: admin only" + }, + "id": 1998, + "name": "Literal", + "src": "14154:44:1" + } + ], + "id": 1999, + "name": "FunctionCall", + "src": "14125:74:1" + } + ], + "id": 2000, + "name": "ExpressionStatement", + "src": "14125:74:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5930fb0b93e8f9722b42028e35c6806f211165c68ad302a38cca85070de7f5ab", + "typeString": "literal_string \"GovernorBravo::_setVotingDelay: invalid voting delay\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2001, + "name": "Identifier", + "src": "14209:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "&&", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1990, + "type": "uint256", + "value": "newVotingDelay" + }, + "id": 2002, + "name": "Identifier", + "src": "14217:14:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 983, + "type": "uint256", + "value": "MIN_VOTING_DELAY" + }, + "id": 2003, + "name": "Identifier", + "src": "14235:16:1" + } + ], + "id": 2004, + "name": "BinaryOperation", + "src": "14217:34:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1990, + "type": "uint256", + "value": "newVotingDelay" + }, + "id": 2005, + "name": "Identifier", + "src": "14255:14:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 986, + "type": "uint256", + "value": "MAX_VOTING_DELAY" + }, + "id": 2006, + "name": "Identifier", + "src": "14273:16:1" + } + ], + "id": 2007, + "name": "BinaryOperation", + "src": "14255:34:1" + } + ], + "id": 2008, + "name": "BinaryOperation", + "src": "14217:72:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a5f736574566f74696e6744656c61793a20696e76616c696420766f74696e672064656c6179", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::_setVotingDelay: invalid voting delay\"", + "value": "GovernorBravo::_setVotingDelay: invalid voting delay" + }, + "id": 2009, + "name": "Literal", + "src": "14291:54:1" + } + ], + "id": 2010, + "name": "FunctionCall", + "src": "14209:137:1" + } + ], + "id": 2011, + "name": "ExpressionStatement", + "src": "14209:137:1" + }, + { + "attributes": { + "assignments": [ + 2013 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "oldVotingDelay", + "scope": 2025, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2012, + "name": "ElementaryTypeName", + "src": "14356:4:1" + } + ], + "id": 2013, + "name": "VariableDeclaration", + "src": "14356:19:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2488, + "type": "uint256", + "value": "votingDelay" + }, + "id": 2014, + "name": "Identifier", + "src": "14378:11:1" + } + ], + "id": 2015, + "name": "VariableDeclarationStatement", + "src": "14356:33:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2488, + "type": "uint256", + "value": "votingDelay" + }, + "id": 2016, + "name": "Identifier", + "src": "14399:11:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1990, + "type": "uint256", + "value": "newVotingDelay" + }, + "id": 2017, + "name": "Identifier", + "src": "14413:14:1" + } + ], + "id": 2018, + "name": "Assignment", + "src": "14399:28:1" + } + ], + "id": 2019, + "name": "ExpressionStatement", + "src": "14399:28:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2446, + "type": "function (uint256,uint256)", + "value": "VotingDelaySet" + }, + "id": 2020, + "name": "Identifier", + "src": "14443:14:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2013, + "type": "uint256", + "value": "oldVotingDelay" + }, + "id": 2021, + "name": "Identifier", + "src": "14458:14:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2488, + "type": "uint256", + "value": "votingDelay" + }, + "id": 2022, + "name": "Identifier", + "src": "14473:11:1" + } + ], + "id": 2023, + "name": "FunctionCall", + "src": "14443:42:1" + } + ], + "id": 2024, + "name": "EmitStatement", + "src": "14438:47:1" + } + ], + "id": 2025, + "name": "Block", + "src": "14115:377:1" + } + ], + "id": 2026, + "name": "FunctionDefinition", + "src": "14060:432:1" + }, + { + "attributes": { + "documentation": "@notice Admin function for setting the voting period\n@param newVotingPeriod new voting period, in blocks", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setVotingPeriod", + "scope": 2267, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "newVotingPeriod", + "scope": 2064, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2027, + "name": "ElementaryTypeName", + "src": "14662:4:1" + } + ], + "id": 2028, + "name": "VariableDeclaration", + "src": "14662:20:1" + } + ], + "id": 2029, + "name": "ParameterList", + "src": "14661:22:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2030, + "name": "ParameterList", + "src": "14693:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1f07f8871aca44be299752a815be880788c18fabad49da5fd1ad2906b62a9e40", + "typeString": "literal_string \"GovernorBravo::_setVotingPeriod: admin only\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2031, + "name": "Identifier", + "src": "14703:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 2032, + "name": "Identifier", + "src": "14711:3:1" + } + ], + "id": 2033, + "name": "MemberAccess", + "src": "14711:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2479, + "type": "address", + "value": "admin" + }, + "id": 2034, + "name": "Identifier", + "src": "14725:5:1" + } + ], + "id": 2035, + "name": "BinaryOperation", + "src": "14711:19:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a5f736574566f74696e67506572696f643a2061646d696e206f6e6c79", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::_setVotingPeriod: admin only\"", + "value": "GovernorBravo::_setVotingPeriod: admin only" + }, + "id": 2036, + "name": "Literal", + "src": "14732:45:1" + } + ], + "id": 2037, + "name": "FunctionCall", + "src": "14703:75:1" + } + ], + "id": 2038, + "name": "ExpressionStatement", + "src": "14703:75:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4bf2bad5a8c282a2af486892899755bae3e0449b79e9da24a0b3247a5e8abe21", + "typeString": "literal_string \"GovernorBravo::_setVotingPeriod: invalid voting period\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2039, + "name": "Identifier", + "src": "14788:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "&&", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2028, + "type": "uint256", + "value": "newVotingPeriod" + }, + "id": 2040, + "name": "Identifier", + "src": "14796:15:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 977, + "type": "uint256", + "value": "MIN_VOTING_PERIOD" + }, + "id": 2041, + "name": "Identifier", + "src": "14815:17:1" + } + ], + "id": 2042, + "name": "BinaryOperation", + "src": "14796:36:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2028, + "type": "uint256", + "value": "newVotingPeriod" + }, + "id": 2043, + "name": "Identifier", + "src": "14836:15:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 980, + "type": "uint256", + "value": "MAX_VOTING_PERIOD" + }, + "id": 2044, + "name": "Identifier", + "src": "14855:17:1" + } + ], + "id": 2045, + "name": "BinaryOperation", + "src": "14836:36:1" + } + ], + "id": 2046, + "name": "BinaryOperation", + "src": "14796:76:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a5f736574566f74696e67506572696f643a20696e76616c696420766f74696e6720706572696f64", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::_setVotingPeriod: invalid voting period\"", + "value": "GovernorBravo::_setVotingPeriod: invalid voting period" + }, + "id": 2047, + "name": "Literal", + "src": "14874:56:1" + } + ], + "id": 2048, + "name": "FunctionCall", + "src": "14788:143:1" + } + ], + "id": 2049, + "name": "ExpressionStatement", + "src": "14788:143:1" + }, + { + "attributes": { + "assignments": [ + 2051 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "oldVotingPeriod", + "scope": 2063, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2050, + "name": "ElementaryTypeName", + "src": "14941:4:1" + } + ], + "id": 2051, + "name": "VariableDeclaration", + "src": "14941:20:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2490, + "type": "uint256", + "value": "votingPeriod" + }, + "id": 2052, + "name": "Identifier", + "src": "14964:12:1" + } + ], + "id": 2053, + "name": "VariableDeclarationStatement", + "src": "14941:35:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2490, + "type": "uint256", + "value": "votingPeriod" + }, + "id": 2054, + "name": "Identifier", + "src": "14986:12:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2028, + "type": "uint256", + "value": "newVotingPeriod" + }, + "id": 2055, + "name": "Identifier", + "src": "15001:15:1" + } + ], + "id": 2056, + "name": "Assignment", + "src": "14986:30:1" + } + ], + "id": 2057, + "name": "ExpressionStatement", + "src": "14986:30:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2452, + "type": "function (uint256,uint256)", + "value": "VotingPeriodSet" + }, + "id": 2058, + "name": "Identifier", + "src": "15032:15:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2051, + "type": "uint256", + "value": "oldVotingPeriod" + }, + "id": 2059, + "name": "Identifier", + "src": "15048:15:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2490, + "type": "uint256", + "value": "votingPeriod" + }, + "id": 2060, + "name": "Identifier", + "src": "15065:12:1" + } + ], + "id": 2061, + "name": "FunctionCall", + "src": "15032:46:1" + } + ], + "id": 2062, + "name": "EmitStatement", + "src": "15027:51:1" + } + ], + "id": 2063, + "name": "Block", + "src": "14693:392:1" + } + ], + "id": 2064, + "name": "FunctionDefinition", + "src": "14636:449:1" + }, + { + "attributes": { + "documentation": "@notice Admin function for setting the proposal threshold\n@dev newProposalThreshold must be greater than the hardcoded min\n@param newProposalThreshold new proposal threshold", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setProposalThreshold", + "scope": 2267, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "newProposalThreshold", + "scope": 2102, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2065, + "name": "ElementaryTypeName", + "src": "15337:4:1" + } + ], + "id": 2066, + "name": "VariableDeclaration", + "src": "15337:25:1" + } + ], + "id": 2067, + "name": "ParameterList", + "src": "15336:27:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2068, + "name": "ParameterList", + "src": "15373:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3c4c3201b4acfac7c8c7f4c0045bc3cdf30555d8f8514b4ca68ba5318610f5e", + "typeString": "literal_string \"GovernorBravo::_setProposalThreshold: admin only\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2069, + "name": "Identifier", + "src": "15383:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 2070, + "name": "Identifier", + "src": "15391:3:1" + } + ], + "id": 2071, + "name": "MemberAccess", + "src": "15391:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2479, + "type": "address", + "value": "admin" + }, + "id": 2072, + "name": "Identifier", + "src": "15405:5:1" + } + ], + "id": 2073, + "name": "BinaryOperation", + "src": "15391:19:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a5f73657450726f706f73616c5468726573686f6c643a2061646d696e206f6e6c79", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::_setProposalThreshold: admin only\"", + "value": "GovernorBravo::_setProposalThreshold: admin only" + }, + "id": 2074, + "name": "Literal", + "src": "15412:50:1" + } + ], + "id": 2075, + "name": "FunctionCall", + "src": "15383:80:1" + } + ], + "id": 2076, + "name": "ExpressionStatement", + "src": "15383:80:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_75a74689ff442834d31e42dd6d27818a23128b0ddaaf74dfd863f8148920cbd3", + "typeString": "literal_string \"GovernorBravo::_setProposalThreshold: invalid proposal threshold\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2077, + "name": "Identifier", + "src": "15473:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "&&", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2066, + "type": "uint256", + "value": "newProposalThreshold" + }, + "id": 2078, + "name": "Identifier", + "src": "15481:20:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 971, + "type": "uint256", + "value": "MIN_PROPOSAL_THRESHOLD" + }, + "id": 2079, + "name": "Identifier", + "src": "15505:22:1" + } + ], + "id": 2080, + "name": "BinaryOperation", + "src": "15481:46:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2066, + "type": "uint256", + "value": "newProposalThreshold" + }, + "id": 2081, + "name": "Identifier", + "src": "15531:20:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 974, + "type": "uint256", + "value": "MAX_PROPOSAL_THRESHOLD" + }, + "id": 2082, + "name": "Identifier", + "src": "15555:22:1" + } + ], + "id": 2083, + "name": "BinaryOperation", + "src": "15531:46:1" + } + ], + "id": 2084, + "name": "BinaryOperation", + "src": "15481:96:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a5f73657450726f706f73616c5468726573686f6c643a20696e76616c69642070726f706f73616c207468726573686f6c64", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::_setProposalThreshold: invalid proposal threshold\"", + "value": "GovernorBravo::_setProposalThreshold: invalid proposal threshold" + }, + "id": 2085, + "name": "Literal", + "src": "15579:66:1" + } + ], + "id": 2086, + "name": "FunctionCall", + "src": "15473:173:1" + } + ], + "id": 2087, + "name": "ExpressionStatement", + "src": "15473:173:1" + }, + { + "attributes": { + "assignments": [ + 2089 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "oldProposalThreshold", + "scope": 2101, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2088, + "name": "ElementaryTypeName", + "src": "15656:4:1" + } + ], + "id": 2089, + "name": "VariableDeclaration", + "src": "15656:25:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2492, + "type": "uint256", + "value": "proposalThreshold" + }, + "id": 2090, + "name": "Identifier", + "src": "15684:17:1" + } + ], + "id": 2091, + "name": "VariableDeclarationStatement", + "src": "15656:45:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2492, + "type": "uint256", + "value": "proposalThreshold" + }, + "id": 2092, + "name": "Identifier", + "src": "15711:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2066, + "type": "uint256", + "value": "newProposalThreshold" + }, + "id": 2093, + "name": "Identifier", + "src": "15731:20:1" + } + ], + "id": 2094, + "name": "Assignment", + "src": "15711:40:1" + } + ], + "id": 2095, + "name": "ExpressionStatement", + "src": "15711:40:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2464, + "type": "function (uint256,uint256)", + "value": "ProposalThresholdSet" + }, + "id": 2096, + "name": "Identifier", + "src": "15767:20:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2089, + "type": "uint256", + "value": "oldProposalThreshold" + }, + "id": 2097, + "name": "Identifier", + "src": "15788:20:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2492, + "type": "uint256", + "value": "proposalThreshold" + }, + "id": 2098, + "name": "Identifier", + "src": "15810:17:1" + } + ], + "id": 2099, + "name": "FunctionCall", + "src": "15767:61:1" + } + ], + "id": 2100, + "name": "EmitStatement", + "src": "15762:66:1" + } + ], + "id": 2101, + "name": "Block", + "src": "15373:462:1" + } + ], + "id": 2102, + "name": "FunctionDefinition", + "src": "15306:529:1" + }, + { + "attributes": { + "documentation": "@notice Initiate the GovernorBravo contract\n@dev Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_initiate", + "scope": 2267, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2103, + "name": "ParameterList", + "src": "16048:2:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2104, + "name": "ParameterList", + "src": "16060:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c71cb3e7fc78df5497c78b1de8f5dd56ad9be94f8e673bd31105debcc4940e0c", + "typeString": "literal_string \"GovernorBravo::_initiate: admin only\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2105, + "name": "Identifier", + "src": "16070:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 2106, + "name": "Identifier", + "src": "16078:3:1" + } + ], + "id": 2107, + "name": "MemberAccess", + "src": "16078:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2479, + "type": "address", + "value": "admin" + }, + "id": 2108, + "name": "Identifier", + "src": "16092:5:1" + } + ], + "id": 2109, + "name": "BinaryOperation", + "src": "16078:19:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a5f696e6974696174653a2061646d696e206f6e6c79", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::_initiate: admin only\"", + "value": "GovernorBravo::_initiate: admin only" + }, + "id": 2110, + "name": "Literal", + "src": "16099:38:1" + } + ], + "id": 2111, + "name": "FunctionCall", + "src": "16070:68:1" + } + ], + "id": 2112, + "name": "ExpressionStatement", + "src": "16070:68:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_928739bbf55fe0185a70df55366e78160f0fe2084090e539cc66d62f04507e17", + "typeString": "literal_string \"GovernorBravo::_initiate: can only initiate once\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2113, + "name": "Identifier", + "src": "16148:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2494, + "type": "uint256", + "value": "initialProposalId" + }, + "id": 2114, + "name": "Identifier", + "src": "16156:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2115, + "name": "Literal", + "src": "16177:1:1" + } + ], + "id": 2116, + "name": "BinaryOperation", + "src": "16156:22:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a3a5f696e6974696174653a2063616e206f6e6c7920696e697469617465206f6e6365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo::_initiate: can only initiate once\"", + "value": "GovernorBravo::_initiate: can only initiate once" + }, + "id": 2117, + "name": "Literal", + "src": "16180:50:1" + } + ], + "id": 2118, + "name": "FunctionCall", + "src": "16148:83:1" + } + ], + "id": 2119, + "name": "ExpressionStatement", + "src": "16148:83:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2496, + "type": "uint256", + "value": "proposalCount" + }, + "id": 2120, + "name": "Identifier", + "src": "16241:13:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2121, + "name": "Literal", + "src": "16257:1:1" + } + ], + "id": 2122, + "name": "Assignment", + "src": "16241:17:1" + } + ], + "id": 2123, + "name": "ExpressionStatement", + "src": "16241:17:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2494, + "type": "uint256", + "value": "initialProposalId" + }, + "id": 2124, + "name": "Identifier", + "src": "16268:17:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2496, + "type": "uint256", + "value": "proposalCount" + }, + "id": 2125, + "name": "Identifier", + "src": "16288:13:1" + } + ], + "id": 2126, + "name": "Assignment", + "src": "16268:33:1" + } + ], + "id": 2127, + "name": "ExpressionStatement", + "src": "16268:33:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "acceptAdmin", + "referencedDeclaration": 2575, + "type": "function () external" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "contract TimelockInterface", + "value": "timelock" + }, + "id": 2128, + "name": "Identifier", + "src": "16311:8:1" + } + ], + "id": 2130, + "name": "MemberAccess", + "src": "16311:20:1" + } + ], + "id": 2131, + "name": "FunctionCall", + "src": "16311:22:1" + } + ], + "id": 2132, + "name": "ExpressionStatement", + "src": "16311:22:1" + } + ], + "id": 2133, + "name": "Block", + "src": "16060:280:1" + } + ], + "id": 2134, + "name": "FunctionDefinition", + "src": "16030:310:1" + }, + { + "attributes": { + "documentation": "@notice Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\n@dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\n@param newPendingAdmin New pending admin.", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setPendingAdmin", + "scope": 2267, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "newPendingAdmin", + "scope": 2161, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2135, + "name": "ElementaryTypeName", + "src": "16684:7:1" + } + ], + "id": 2136, + "name": "VariableDeclaration", + "src": "16684:23:1" + } + ], + "id": 2137, + "name": "ParameterList", + "src": "16683:25:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2138, + "name": "ParameterList", + "src": "16718:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_15b86236d8e6aaae4fbee852729fd208d60cf2b5c9f6ec4ea2291e707cb07995", + "typeString": "literal_string \"GovernorBravo:_setPendingAdmin: admin only\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2139, + "name": "Identifier", + "src": "16760:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 2140, + "name": "Identifier", + "src": "16768:3:1" + } + ], + "id": 2141, + "name": "MemberAccess", + "src": "16768:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2479, + "type": "address", + "value": "admin" + }, + "id": 2142, + "name": "Identifier", + "src": "16782:5:1" + } + ], + "id": 2143, + "name": "BinaryOperation", + "src": "16768:19:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a5f73657450656e64696e6741646d696e3a2061646d696e206f6e6c79", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo:_setPendingAdmin: admin only\"", + "value": "GovernorBravo:_setPendingAdmin: admin only" + }, + "id": 2144, + "name": "Literal", + "src": "16789:44:1" + } + ], + "id": 2145, + "name": "FunctionCall", + "src": "16760:74:1" + } + ], + "id": 2146, + "name": "ExpressionStatement", + "src": "16760:74:1" + }, + { + "attributes": { + "assignments": [ + 2148 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "oldPendingAdmin", + "scope": 2160, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2147, + "name": "ElementaryTypeName", + "src": "16905:7:1" + } + ], + "id": 2148, + "name": "VariableDeclaration", + "src": "16905:23:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2481, + "type": "address", + "value": "pendingAdmin" + }, + "id": 2149, + "name": "Identifier", + "src": "16931:12:1" + } + ], + "id": 2150, + "name": "VariableDeclarationStatement", + "src": "16905:38:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2481, + "type": "address", + "value": "pendingAdmin" + }, + "id": 2151, + "name": "Identifier", + "src": "17011:12:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2136, + "type": "address", + "value": "newPendingAdmin" + }, + "id": 2152, + "name": "Identifier", + "src": "17026:15:1" + } + ], + "id": 2153, + "name": "Assignment", + "src": "17011:30:1" + } + ], + "id": 2154, + "name": "ExpressionStatement", + "src": "17011:30:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2470, + "type": "function (address,address)", + "value": "NewPendingAdmin" + }, + "id": 2155, + "name": "Identifier", + "src": "17123:15:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "address", + "value": "oldPendingAdmin" + }, + "id": 2156, + "name": "Identifier", + "src": "17139:15:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2136, + "type": "address", + "value": "newPendingAdmin" + }, + "id": 2157, + "name": "Identifier", + "src": "17156:15:1" + } + ], + "id": 2158, + "name": "FunctionCall", + "src": "17123:49:1" + } + ], + "id": 2159, + "name": "EmitStatement", + "src": "17118:54:1" + } + ], + "id": 2160, + "name": "Block", + "src": "16718:461:1" + } + ], + "id": 2161, + "name": "FunctionDefinition", + "src": "16658:521:1" + }, + { + "attributes": { + "documentation": "@notice Accepts transfer of admin rights. msg.sender must be pendingAdmin\n@dev Admin function for pending admin to accept role and update admin", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_acceptAdmin", + "scope": 2267, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2162, + "name": "ParameterList", + "src": "17383:2:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2163, + "name": "ParameterList", + "src": "17395:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a193c43d3fcb6bad7dee9cd0aee4d22b57650045fda67e20f8280b4ef9e1a8a8", + "typeString": "literal_string \"GovernorBravo:_acceptAdmin: pending admin only\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2164, + "name": "Identifier", + "src": "17477:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "&&", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 2165, + "name": "Identifier", + "src": "17485:3:1" + } + ], + "id": 2166, + "name": "MemberAccess", + "src": "17485:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2481, + "type": "address", + "value": "pendingAdmin" + }, + "id": 2167, + "name": "Identifier", + "src": "17499:12:1" + } + ], + "id": 2168, + "name": "BinaryOperation", + "src": "17485:26:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 2169, + "name": "Identifier", + "src": "17515:3:1" + } + ], + "id": 2170, + "name": "MemberAccess", + "src": "17515:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 2171, + "name": "ElementaryTypeNameExpression", + "src": "17529:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2172, + "name": "Literal", + "src": "17537:1:1" + } + ], + "id": 2173, + "name": "FunctionCall", + "src": "17529:10:1" + } + ], + "id": 2174, + "name": "BinaryOperation", + "src": "17515:24:1" + } + ], + "id": 2175, + "name": "BinaryOperation", + "src": "17485:54:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f3a5f61636365707441646d696e3a2070656e64696e672061646d696e206f6e6c79", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravo:_acceptAdmin: pending admin only\"", + "value": "GovernorBravo:_acceptAdmin: pending admin only" + }, + "id": 2176, + "name": "Literal", + "src": "17541:48:1" + } + ], + "id": 2177, + "name": "FunctionCall", + "src": "17477:113:1" + } + ], + "id": 2178, + "name": "ExpressionStatement", + "src": "17477:113:1" + }, + { + "attributes": { + "assignments": [ + 2180 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "oldAdmin", + "scope": 2207, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2179, + "name": "ElementaryTypeName", + "src": "17653:7:1" + } + ], + "id": 2180, + "name": "VariableDeclaration", + "src": "17653:16:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2479, + "type": "address", + "value": "admin" + }, + "id": 2181, + "name": "Identifier", + "src": "17672:5:1" + } + ], + "id": 2182, + "name": "VariableDeclarationStatement", + "src": "17653:24:1" + }, + { + "attributes": { + "assignments": [ + 2184 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "oldPendingAdmin", + "scope": 2207, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2183, + "name": "ElementaryTypeName", + "src": "17687:7:1" + } + ], + "id": 2184, + "name": "VariableDeclaration", + "src": "17687:23:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2481, + "type": "address", + "value": "pendingAdmin" + }, + "id": 2185, + "name": "Identifier", + "src": "17713:12:1" + } + ], + "id": 2186, + "name": "VariableDeclarationStatement", + "src": "17687:38:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2479, + "type": "address", + "value": "admin" + }, + "id": 2187, + "name": "Identifier", + "src": "17783:5:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2481, + "type": "address", + "value": "pendingAdmin" + }, + "id": 2188, + "name": "Identifier", + "src": "17791:12:1" + } + ], + "id": 2189, + "name": "Assignment", + "src": "17783:20:1" + } + ], + "id": 2190, + "name": "ExpressionStatement", + "src": "17783:20:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2481, + "type": "address", + "value": "pendingAdmin" + }, + "id": 2191, + "name": "Identifier", + "src": "17849:12:1" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 2192, + "name": "ElementaryTypeNameExpression", + "src": "17864:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2193, + "name": "Literal", + "src": "17872:1:1" + } + ], + "id": 2194, + "name": "FunctionCall", + "src": "17864:10:1" + } + ], + "id": 2195, + "name": "Assignment", + "src": "17849:25:1" + } + ], + "id": 2196, + "name": "ExpressionStatement", + "src": "17849:25:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2476, + "type": "function (address,address)", + "value": "NewAdmin" + }, + "id": 2197, + "name": "Identifier", + "src": "17890:8:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2180, + "type": "address", + "value": "oldAdmin" + }, + "id": 2198, + "name": "Identifier", + "src": "17899:8:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2479, + "type": "address", + "value": "admin" + }, + "id": 2199, + "name": "Identifier", + "src": "17909:5:1" + } + ], + "id": 2200, + "name": "FunctionCall", + "src": "17890:25:1" + } + ], + "id": 2201, + "name": "EmitStatement", + "src": "17885:30:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2470, + "type": "function (address,address)", + "value": "NewPendingAdmin" + }, + "id": 2202, + "name": "Identifier", + "src": "17930:15:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2184, + "type": "address", + "value": "oldPendingAdmin" + }, + "id": 2203, + "name": "Identifier", + "src": "17946:15:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2481, + "type": "address", + "value": "pendingAdmin" + }, + "id": 2204, + "name": "Identifier", + "src": "17963:12:1" + } + ], + "id": 2205, + "name": "FunctionCall", + "src": "17930:46:1" + } + ], + "id": 2206, + "name": "EmitStatement", + "src": "17925:51:1" + } + ], + "id": 2207, + "name": "Block", + "src": "17395:588:1" + } + ], + "id": 2208, + "name": "FunctionDefinition", + "src": "17362:621:1" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add256", + "scope": 2267, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 2233, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2209, + "name": "ElementaryTypeName", + "src": "18005:7:1" + } + ], + "id": 2210, + "name": "VariableDeclaration", + "src": "18005:9:1" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 2233, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2211, + "name": "ElementaryTypeName", + "src": "18016:7:1" + } + ], + "id": 2212, + "name": "VariableDeclaration", + "src": "18016:9:1" + } + ], + "id": 2213, + "name": "ParameterList", + "src": "18004:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2233, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2214, + "name": "ElementaryTypeName", + "src": "18050:4:1" + } + ], + "id": 2215, + "name": "VariableDeclaration", + "src": "18050:4:1" + } + ], + "id": 2216, + "name": "ParameterList", + "src": "18049:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2218 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "c", + "scope": 2232, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2217, + "name": "ElementaryTypeName", + "src": "18066:4:1" + } + ], + "id": 2218, + "name": "VariableDeclaration", + "src": "18066:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2210, + "type": "uint256", + "value": "a" + }, + "id": 2219, + "name": "Identifier", + "src": "18075:1:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2212, + "type": "uint256", + "value": "b" + }, + "id": 2220, + "name": "Identifier", + "src": "18079:1:1" + } + ], + "id": 2221, + "name": "BinaryOperation", + "src": "18075:5:1" + } + ], + "id": 2222, + "name": "VariableDeclarationStatement", + "src": "18066:14:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8c0d96e929759368d857f737222dcb6a5217a09dbc29c3e61addc531fdea00f5", + "typeString": "literal_string \"addition overflow\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2223, + "name": "Identifier", + "src": "18090:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2218, + "type": "uint256", + "value": "c" + }, + "id": 2224, + "name": "Identifier", + "src": "18098:1:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2210, + "type": "uint256", + "value": "a" + }, + "id": 2225, + "name": "Identifier", + "src": "18103:1:1" + } + ], + "id": 2226, + "name": "BinaryOperation", + "src": "18098:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "6164646974696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"addition overflow\"", + "value": "addition overflow" + }, + "id": 2227, + "name": "Literal", + "src": "18106:19:1" + } + ], + "id": 2228, + "name": "FunctionCall", + "src": "18090:36:1" + } + ], + "id": 2229, + "name": "ExpressionStatement", + "src": "18090:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2216 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2218, + "type": "uint256", + "value": "c" + }, + "id": 2230, + "name": "Identifier", + "src": "18143:1:1" + } + ], + "id": 2231, + "name": "Return", + "src": "18136:8:1" + } + ], + "id": 2232, + "name": "Block", + "src": "18056:95:1" + } + ], + "id": 2233, + "name": "FunctionDefinition", + "src": "17989:162:1" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub256", + "scope": 2267, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 2254, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2234, + "name": "ElementaryTypeName", + "src": "18173:7:1" + } + ], + "id": 2235, + "name": "VariableDeclaration", + "src": "18173:9:1" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 2254, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2236, + "name": "ElementaryTypeName", + "src": "18184:7:1" + } + ], + "id": 2237, + "name": "VariableDeclaration", + "src": "18184:9:1" + } + ], + "id": 2238, + "name": "ParameterList", + "src": "18172:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2254, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2239, + "name": "ElementaryTypeName", + "src": "18218:4:1" + } + ], + "id": 2240, + "name": "VariableDeclaration", + "src": "18218:4:1" + } + ], + "id": 2241, + "name": "ParameterList", + "src": "18217:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f22f6b3017af2aff30fb71d5e8f8adc6cd3022431e6fc88c01d6d8b2adb30f31", + "typeString": "literal_string \"subtraction underflow\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2242, + "name": "Identifier", + "src": "18234:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2237, + "type": "uint256", + "value": "b" + }, + "id": 2243, + "name": "Identifier", + "src": "18242:1:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2235, + "type": "uint256", + "value": "a" + }, + "id": 2244, + "name": "Identifier", + "src": "18247:1:1" + } + ], + "id": 2245, + "name": "BinaryOperation", + "src": "18242:6:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "7375627472616374696f6e20756e646572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"subtraction underflow\"", + "value": "subtraction underflow" + }, + "id": 2246, + "name": "Literal", + "src": "18250:23:1" + } + ], + "id": 2247, + "name": "FunctionCall", + "src": "18234:40:1" + } + ], + "id": 2248, + "name": "ExpressionStatement", + "src": "18234:40:1" + }, + { + "attributes": { + "functionReturnParameters": 2241 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2235, + "type": "uint256", + "value": "a" + }, + "id": 2249, + "name": "Identifier", + "src": "18291:1:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2237, + "type": "uint256", + "value": "b" + }, + "id": 2250, + "name": "Identifier", + "src": "18295:1:1" + } + ], + "id": 2251, + "name": "BinaryOperation", + "src": "18291:5:1" + } + ], + "id": 2252, + "name": "Return", + "src": "18284:12:1" + } + ], + "id": 2253, + "name": "Block", + "src": "18224:79:1" + } + ], + "id": 2254, + "name": "FunctionDefinition", + "src": "18157:146:1" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getChainIdInternal", + "scope": 2267, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2255, + "name": "ParameterList", + "src": "18336:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2266, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2256, + "name": "ElementaryTypeName", + "src": "18362:4:1" + } + ], + "id": 2257, + "name": "VariableDeclaration", + "src": "18362:4:1" + } + ], + "id": 2258, + "name": "ParameterList", + "src": "18361:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2260 + ], + "initialValue": null + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "chainId", + "scope": 2265, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2259, + "name": "ElementaryTypeName", + "src": "18378:4:1" + } + ], + "id": 2260, + "name": "VariableDeclaration", + "src": "18378:12:1" + } + ], + "id": 2261, + "name": "VariableDeclarationStatement", + "src": "18378:12:1" + }, + { + "attributes": { + "externalReferences": [ + { + "chainId": { + "declaration": 2260, + "isOffset": false, + "isSlot": false, + "src": "18411:7:1", + "valueSize": 1 + } + } + ], + "operations": "{ chainId := chainid() }" + }, + "children": [], + "id": 2262, + "name": "InlineAssembly", + "src": "18400:33:1" + }, + { + "attributes": { + "functionReturnParameters": 2258 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2260, + "type": "uint256", + "value": "chainId" + }, + "id": 2263, + "name": "Identifier", + "src": "18449:7:1" + } + ], + "id": 2264, + "name": "Return", + "src": "18442:14:1" + } + ], + "id": 2265, + "name": "Block", + "src": "18368:95:1" + } + ], + "id": 2266, + "name": "FunctionDefinition", + "src": "18309:154:1" + } + ], + "id": 2267, + "name": "ContractDefinition", + "src": "101:18364:1" + } + ], + "id": 2268, + "name": "SourceUnit", + "src": "0:18465:1" + }, + "compiler": { + "name": "solc", + "version": "0.5.16" + }, + "networks": { + "28": { + "events": {}, + "links": {}, + "address": "0x807E0778197A1d5FfBAaA9d4f23023f22f5256fC", + "transactionHash": "0x65d43537e1a86b2a5134f90fd2456b4d72db13941a210c10c446241f84195a88" + } + }, + "schemaVersion": "3.4.3", + "updatedAt": "2021-09-05T22:07:11.025Z", + "networkType": "ethereum", + "devdoc": { + "methods": { + "_acceptAdmin()": { + "details": "Admin function for pending admin to accept role and update admin" + }, + "_initiate()": { + "details": "Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count" + }, + "_setPendingAdmin(address)": { + "details": "Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.", + "params": { + "newPendingAdmin": "New pending admin." + } + }, + "_setProposalThreshold(uint256)": { + "details": "newProposalThreshold must be greater than the hardcoded min", + "params": { + "newProposalThreshold": "new proposal threshold" + } + }, + "_setVotingDelay(uint256)": { + "params": { + "newVotingDelay": "new voting delay, in blocks" + } + }, + "_setVotingPeriod(uint256)": { + "params": { + "newVotingPeriod": "new voting period, in blocks" + } + }, + "cancel(uint256)": { + "params": { + "proposalId": "The id of the proposal to cancel" + } + }, + "castVote(uint256,uint8)": { + "params": { + "proposalId": "The id of the proposal to vote on", + "support": "The support value for the vote. 0=against, 1=for, 2=abstain" + } + }, + "castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)": { + "details": "External function that accepts EIP-712 signatures for voting on proposals." + }, + "castVoteWithReason(uint256,uint8,string)": { + "params": { + "proposalId": "The id of the proposal to vote on", + "reason": "The reason given for the vote by the voter", + "support": "The support value for the vote. 0=against, 1=for, 2=abstain" + } + }, + "execute(uint256)": { + "params": { + "proposalId": "The id of the proposal to execute" + } + }, + "getActions(uint256)": { + "params": { + "proposalId": "the id of the proposal" + }, + "return": "Targets, values, signatures, and calldatas of the proposal actions" + }, + "getReceipt(uint256,address)": { + "params": { + "proposalId": "the id of proposal", + "voter": "The address of the voter" + }, + "return": "The voting receipt" + }, + "initialize(address,address,uint256,uint256,uint256)": { + "params": { + "comp_": "The address of the COMP token", + "proposalThreshold_": "The initial proposal threshold", + "timelock_": "The address of the Timelock", + "votingDelay_": "The initial voting delay", + "votingPeriod_": "The initial voting period" + } + }, + "propose(address[],uint256[],string[],bytes[],string)": { + "params": { + "calldatas": "Calldatas for proposal calls", + "description": "String description of the proposal", + "signatures": "Function signatures for proposal calls", + "targets": "Target addresses for proposal calls", + "values": "Eth values for proposal calls" + }, + "return": "Proposal id of new proposal" + }, + "queue(uint256)": { + "params": { + "proposalId": "The id of the proposal to queue" + } + }, + "state(uint256)": { + "params": { + "proposalId": "The id of the proposal" + }, + "return": "Proposal state" + } + } + }, + "userdoc": { + "methods": { + "_acceptAdmin()": { + "notice": "Accepts transfer of admin rights. msg.sender must be pendingAdmin" + }, + "_initiate()": { + "notice": "Initiate the GovernorBravo contract" + }, + "_setPendingAdmin(address)": { + "notice": "Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer." + }, + "_setProposalThreshold(uint256)": { + "notice": "Admin function for setting the proposal threshold" + }, + "_setVotingDelay(uint256)": { + "notice": "Admin function for setting the voting delay" + }, + "_setVotingPeriod(uint256)": { + "notice": "Admin function for setting the voting period" + }, + "cancel(uint256)": { + "notice": "Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold" + }, + "castVote(uint256,uint8)": { + "notice": "Cast a vote for a proposal" + }, + "castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)": { + "notice": "Cast a vote for a proposal by signature" + }, + "castVoteWithReason(uint256,uint8,string)": { + "notice": "Cast a vote for a proposal with a reason" + }, + "execute(uint256)": { + "notice": "Executes a queued proposal if eta has passed" + }, + "getActions(uint256)": { + "notice": "Gets actions of a proposal" + }, + "getReceipt(uint256,address)": { + "notice": "Gets the receipt for a voter on a given proposal" + }, + "initialize(address,address,uint256,uint256,uint256)": { + "notice": "Used to initialize the contract during delegator contructor" + }, + "propose(address[],uint256[],string[],bytes[],string)": { + "notice": "Function used to propose a new proposal. Sender must have delegates above the proposal threshold" + }, + "queue(uint256)": { + "notice": "Queues a proposal of state succeeded" + }, + "state(uint256)": { + "notice": "Gets the state of a proposal" + } + } + } +} \ No newline at end of file diff --git a/omgx_examples/compound-simple/build-ovm/GovernorBravoDelegateStorageV1.json b/omgx_examples/compound-simple/build-ovm/GovernorBravoDelegateStorageV1.json new file mode 100644 index 000000000000..4cd0be3a49d9 --- /dev/null +++ b/omgx_examples/compound-simple/build-ovm/GovernorBravoDelegateStorageV1.json @@ -0,0 +1,6452 @@ +{ + "contractName": "GovernorBravoDelegateStorageV1", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "admin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "comp", + "outputs": [ + { + "internalType": "contract CompInterface", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "implementation", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "initialProposalId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "latestProposalIds", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "pendingAdmin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "proposalCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "proposalThreshold", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "proposals", + "outputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "address", + "name": "proposer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startBlock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endBlock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "forVotes", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "againstVotes", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "abstainVotes", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "canceled", + "type": "bool" + }, + { + "internalType": "bool", + "name": "executed", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "timelock", + "outputs": [ + { + "internalType": "contract TimelockInterface", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "votingDelay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "votingPeriod", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.16-develop.2020.11.10+ovm+commit.00cdd204\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"comp\",\"outputs\":[{\"internalType\":\"contract CompInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"initialProposalId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"latestProposalIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"abstainVotes\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"timelock\",\"outputs\":[{\"internalType\":\"contract TimelockInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{},\"title\":\"Storage for Governor Bravo Delegate\"},\"userdoc\":{\"methods\":{},\"notice\":\"For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new contract which implements GovernorBravoDelegateStorageV1 and following the naming convention GovernorBravoDelegateStorageVX.\"}},\"settings\":{\"compilationTarget\":{\"project:/contracts/GovernorBravoInterfaces.sol\":\"GovernorBravoDelegateStorageV1\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"project:/contracts/GovernorBravoInterfaces.sol\":{\"keccak256\":\"0x74cb8a82fef2906cbee7c96d7aa72e46b01df83859704a35a4a63d3aa9493718\",\"urls\":[\"bzz-raw://82b0c9f82c46927ea7128afc44921d60af23461da7f6d0c29484b5b92ad2b87a\",\"dweb:/ipfs/QmbNHAYEhhXzmdsmfMPLuGAGceq9oHD9AaDmyrnVaXPrhh\"]}},\"version\":1}", + "bytecode": "0x60806040523480156100195760008061001661001f565b50505b5061008a565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561005757808601518282016040015260200161003c565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b610546806100996000396000f3fe6080604052348015610019576000806100166102d0565b50505b50600436106100ad5760003560e01c8063013cf08b146100bb57806302a251a3146100ed578063109d0af81461010257806317977c6114610117578063267822471461012a5780633932abb11461013f5780635c60da1b14610147578063b58131b01461014f578063d33219b414610157578063da35c6641461015f578063f851a44014610167578063fc4eee421461016f575b6000806100b86102d0565b50505b6100ce6100c93660046103e6565b610177565b6040516100e49a99989796959493929190610461565b60405180910390f35b6100f5610235565b6040516100e49190610453565b61010a610242565b6040516100e49190610445565b6100f56101253660046103b7565b610261565b610132610279565b6040516100e49190610437565b6100f5610285565b61013261028f565b6100f561029b565b61010a6102a5565b6100f56102b1565b6101326102bb565b6100f56102c6565b600a60205280600052604060002090508061019061033b565b9060006001820161019f61033b565b906101000a90046001600160a01b031690806002016101bc61033b565b90806007016101c961033b565b90806008016101d661033b565b90806009016101e361033b565b9080600a016101f061033b565b9080600b016101fd61033b565b906000600c820161020c61033b565b906101000a900460ff169080600c0160019061022661033b565b906101000a900460ff1690508a565b600461023f61033b565b81565b6000600961024e61033b565b906101000a90046001600160a01b031681565b600b602052806000526040600020905061023f61033b565b6000600161024e61033b565b600361023f61033b565b6000600261024e61033b565b600561023f61033b565b6000600861024e61033b565b600761023f61033b565b60008061024e61033b565b600661023f61033b565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156103085780860151828201604001526020016102ed565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b60408110156103965760008282015260200161037f565b505050565b80356103a681610520565b92915050565b80356103a68161053d565b6000602082840312156103d2576000806103cf6102d0565b50505b60006103de848461039b565b949350505050565b600060208284031215610401576000806103fe6102d0565b50505b60006103de84846103ac565b610416816104f6565b82525050565b61041681610501565b61041681610515565b61041681610512565b602081016103a6828461040d565b602081016103a68284610425565b602081016103a6828461042e565b6101408101610470828d61042e565b61047d602083018c61040d565b61048a604083018b61042e565b610497606083018a61042e565b6104a4608083018961042e565b6104b160a083018861042e565b6104be60c083018761042e565b6104cb60e083018661042e565b6104d961010083018561041c565b6104e761012083018461041c565b9b9a5050505050505050505050565b60006103a682610506565b151590565b6001600160a01b031690565b90565b60006103a6826104f6565b610529816104f6565b811461053a576000806103966102d0565b50565b6105298161051256", + "deployedBytecode": "0x6080604052348015610019576000806100166102d0565b50505b50600436106100ad5760003560e01c8063013cf08b146100bb57806302a251a3146100ed578063109d0af81461010257806317977c6114610117578063267822471461012a5780633932abb11461013f5780635c60da1b14610147578063b58131b01461014f578063d33219b414610157578063da35c6641461015f578063f851a44014610167578063fc4eee421461016f575b6000806100b86102d0565b50505b6100ce6100c93660046103e6565b610177565b6040516100e49a99989796959493929190610461565b60405180910390f35b6100f5610235565b6040516100e49190610453565b61010a610242565b6040516100e49190610445565b6100f56101253660046103b7565b610261565b610132610279565b6040516100e49190610437565b6100f5610285565b61013261028f565b6100f561029b565b61010a6102a5565b6100f56102b1565b6101326102bb565b6100f56102c6565b600a60205280600052604060002090508061019061033b565b9060006001820161019f61033b565b906101000a90046001600160a01b031690806002016101bc61033b565b90806007016101c961033b565b90806008016101d661033b565b90806009016101e361033b565b9080600a016101f061033b565b9080600b016101fd61033b565b906000600c820161020c61033b565b906101000a900460ff169080600c0160019061022661033b565b906101000a900460ff1690508a565b600461023f61033b565b81565b6000600961024e61033b565b906101000a90046001600160a01b031681565b600b602052806000526040600020905061023f61033b565b6000600161024e61033b565b600361023f61033b565b6000600261024e61033b565b600561023f61033b565b6000600861024e61033b565b600761023f61033b565b60008061024e61033b565b600661023f61033b565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156103085780860151828201604001526020016102ed565b506020828760640184336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c52505050565b6303daa959598160e01b8152836004820152602081602483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c528051935060005b60408110156103965760008282015260200161037f565b505050565b80356103a681610520565b92915050565b80356103a68161053d565b6000602082840312156103d2576000806103cf6102d0565b50505b60006103de848461039b565b949350505050565b600060208284031215610401576000806103fe6102d0565b50505b60006103de84846103ac565b610416816104f6565b82525050565b61041681610501565b61041681610515565b61041681610512565b602081016103a6828461040d565b602081016103a68284610425565b602081016103a6828461042e565b6101408101610470828d61042e565b61047d602083018c61040d565b61048a604083018b61042e565b610497606083018a61042e565b6104a4608083018961042e565b6104b160a083018861042e565b6104be60c083018761042e565b6104cb60e083018661042e565b6104d961010083018561041c565b6104e761012083018461041c565b9b9a5050505050505050505050565b60006103a682610506565b151590565b6001600160a01b031690565b90565b60006103a6826104f6565b610529816104f6565b811461053a576000806103966102d0565b50565b6105298161051256", + "sourceMap": "2574:3190:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;2574:3190:3;;;;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;242:1;231:9;227:17;295:4;284:9;277:23;362:6;355:4;344:9;340:20;333:36;424:1;407:143;436:6;431:3;428:15;407:143;;;536:3;528:6;524:16;518:23;486:30;;;505:4;486:30;479:63;462:4;453:14;407:143;;;411:16;720:4;709:9;700:6;694:4;690:17;679:9;674:51;;;;;;;;;;;;;;;;;;;;;;;;;;0:821;;;2574:3190:3:o;:::-;;;;;;;", + "deployedSourceMap": "2574:3190:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;2574:3190:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;3423:43;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2843:24;;;:::i;:::-;;;;;;;;3324:25;;;:::i;:::-;;;;;;;;3527:50;;;;;;;;;:::i;2187:27::-;;;:::i;:::-;;;;;;;;2749:23;;;:::i;2263:29::-;;;:::i;2961:::-;;;:::i;3223:33::-;;;:::i;3129:25::-;;;:::i;2104:20::-;;;:::i;3047:29::-;;;:::i;3423:43::-;;;;;;;;;;;-1:-1:-1;3423:43:3;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3423:43:3;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;2843:24::-;;;;:::i;:::-;;:::o;3324:25::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3324:25:3;;:::o;3527:50::-;;;;;;;;;;;-1:-1:-1;3527:50:3;;:::i;2187:27::-;;;;;:::i;2749:23::-;;;;:::i;2263:29::-;;;;;:::i;2961:::-;;;;:::i;3223:33::-;;;;;:::i;3129:25::-;;;;:::i;2104:20::-;;;;;:::i;3047:29::-;;;;:::i;2574:3190::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;242:1;231:9;227:17;295:4;284:9;277:23;362:6;355:4;344:9;340:20;333:36;424:1;407:143;436:6;431:3;428:15;407:143;;;536:3;528:6;524:16;518:23;486:30;;;505:4;486:30;479:63;462:4;453:14;407:143;;;411:16;720:4;709:9;700:6;694:4;690:17;679:9;674:51;;;;;;;;;;;;;;;;;;;;;;;;;;0:821;;;2574:3190:3:o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;184:2;180:1;169:9;165:17;158:29;252:2;241:9;237:2;226:9;221:34;;;;;;;;;;;;;;;;;;;;;;;;;;271:9;265:16;259:22;;521:1;504:100;533:4;528:3;525:13;504:100;;;598:1;577:19;;;570:30;557:4;548:14;504:100;;;508:16;0:607;;2574:3190:3:o;5:130:-1:-;72:20;;97:33;72:20;97:33;;;57:78;;;;;142:130;209:20;;234:33;209:20;234:33;;279:241;;383:2;371:9;362:7;358:23;354:32;351:2;;;399:1;396;389:12;;:::i;:::-;;;351:2;434:1;451:53;496:7;476:9;451:53;;;441:63;345:175;-1:-1;;;;345:175;527:241;;631:2;619:9;610:7;606:23;602:32;599:2;;;647:1;644;637:12;;:::i;:::-;;;599:2;682:1;699:53;744:7;724:9;699:53;;775:113;858:24;876:5;858:24;;;853:3;846:37;840:48;;;895:104;972:21;987:5;972:21;;1006:170;1111:59;1164:5;1111:59;;1368:113;1451:24;1469:5;1451:24;;1488:213;1606:2;1591:18;;1620:71;1595:9;1664:6;1620:71;;1708:257;1848:2;1833:18;;1862:93;1837:9;1928:6;1862:93;;2244:213;2362:2;2347:18;;2376:71;2351:9;2420:6;2376:71;;2464:1195;2822:3;2807:19;;2837:71;2811:9;2881:6;2837:71;;;2919:72;2987:2;2976:9;2972:18;2963:6;2919:72;;;3002;3070:2;3059:9;3055:18;3046:6;3002:72;;;3085;3153:2;3142:9;3138:18;3129:6;3085:72;;;3168:73;3236:3;3225:9;3221:19;3212:6;3168:73;;;3252;3320:3;3309:9;3305:19;3296:6;3252:73;;;3336;3404:3;3393:9;3389:19;3380:6;3336:73;;;3420;3488:3;3477:9;3473:19;3464:6;3420:73;;;3504:67;3566:3;3555:9;3551:19;3542:6;3504:67;;;3582;3644:3;3633:9;3629:19;3620:6;3582:67;;;2793:866;;;;;;;;;;;;;;3666:91;;3728:24;3746:5;3728:24;;3764:85;3830:13;3823:21;;3806:43;3856:121;-1:-1;;;;;3918:54;;3901:76;3984:72;4046:5;4029:27;4063:165;;4164:59;4217:5;4164:59;;4693:117;4762:24;4780:5;4762:24;;;4755:5;4752:35;4742:2;;4801:1;4798;4791:12;;:::i;4742:2::-;4736:74;;4817:117;4886:24;4904:5;4886:24;", + "source": "pragma solidity ^0.5.16;\npragma experimental ABIEncoderV2;\n\n\ncontract GovernorBravoEvents {\n /// @notice An event emitted when a new proposal is created\n event ProposalCreated(uint id, address proposer, address[] targets, uint[] values, string[] signatures, bytes[] calldatas, uint startBlock, uint endBlock, string description);\n\n /// @notice An event emitted when a vote has been cast on a proposal\n /// @param voter The address which casted a vote\n /// @param proposalId The proposal id which was voted on\n /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\n /// @param votes Number of votes which were cast by the voter\n /// @param reason The reason given for the vote by the voter\n event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\n\n /// @notice An event emitted when a proposal has been canceled\n event ProposalCanceled(uint id);\n\n /// @notice An event emitted when a proposal has been queued in the Timelock\n event ProposalQueued(uint id, uint eta);\n\n /// @notice An event emitted when a proposal has been executed in the Timelock\n event ProposalExecuted(uint id);\n\n /// @notice An event emitted when the voting delay is set\n event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\n\n /// @notice An event emitted when the voting period is set\n event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\n\n /// @notice Emitted when implementation is changed\n event NewImplementation(address oldImplementation, address newImplementation);\n\n /// @notice Emitted when proposal threshold is set\n event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\n\n /// @notice Emitted when pendingAdmin is changed\n event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\n\n /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\n event NewAdmin(address oldAdmin, address newAdmin);\n}\n\ncontract GovernorBravoDelegatorStorage {\n /// @notice Administrator for this contract\n address public admin;\n\n /// @notice Pending administrator for this contract\n address public pendingAdmin;\n\n /// @notice Active brains of Governor\n address public implementation;\n}\n\n\n/**\n * @title Storage for Governor Bravo Delegate\n * @notice For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\n * GovernorBravoDelegateStorageVX.\n */\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\n\n /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\n uint public votingDelay;\n\n /// @notice The duration of voting on a proposal, in blocks\n uint public votingPeriod;\n\n /// @notice The number of votes required in order for a voter to become a proposer\n uint public proposalThreshold;\n\n /// @notice Initial proposal id set at become\n uint public initialProposalId;\n\n /// @notice The total number of proposals\n uint public proposalCount;\n\n /// @notice The address of the Compound Protocol Timelock\n TimelockInterface public timelock;\n\n /// @notice The address of the Compound governance token\n CompInterface public comp;\n\n /// @notice The official record of all proposals ever proposed\n mapping (uint => Proposal) public proposals;\n\n /// @notice The latest proposal for each proposer\n mapping (address => uint) public latestProposalIds;\n\n\n struct Proposal {\n /// @notice Unique id for looking up a proposal\n uint id;\n\n /// @notice Creator of the proposal\n address proposer;\n\n /// @notice The timestamp that the proposal will be available for execution, set once the vote succeeds\n uint eta;\n\n /// @notice the ordered list of target addresses for calls to be made\n address[] targets;\n\n /// @notice The ordered list of values (i.e. msg.value) to be passed to the calls to be made\n uint[] values;\n\n /// @notice The ordered list of function signatures to be called\n string[] signatures;\n\n /// @notice The ordered list of calldata to be passed to each call\n bytes[] calldatas;\n\n /// @notice The block at which voting begins: holders must delegate their votes prior to this block\n uint startBlock;\n\n /// @notice The block at which voting ends: votes must be cast prior to this block\n uint endBlock;\n\n /// @notice Current number of votes in favor of this proposal\n uint forVotes;\n\n /// @notice Current number of votes in opposition to this proposal\n uint againstVotes;\n\n /// @notice Current number of votes for abstaining for this proposal\n uint abstainVotes;\n\n /// @notice Flag marking whether the proposal has been canceled\n bool canceled;\n\n /// @notice Flag marking whether the proposal has been executed\n bool executed;\n\n /// @notice Receipts of ballots for the entire set of voters\n mapping (address => Receipt) receipts;\n }\n\n /// @notice Ballot receipt record for a voter\n struct Receipt {\n /// @notice Whether or not a vote has been cast\n bool hasVoted;\n\n /// @notice Whether or not the voter supports the proposal or abstains\n uint8 support;\n\n /// @notice The number of votes the voter had, which were cast\n uint96 votes;\n }\n\n /// @notice Possible states that a proposal may be in\n enum ProposalState {\n Pending,\n Active,\n Canceled,\n Defeated,\n Succeeded,\n Queued,\n Expired,\n Executed\n }\n}\n\ninterface TimelockInterface {\n function delay() external view returns (uint);\n function GRACE_PERIOD() external view returns (uint);\n function acceptAdmin() external;\n function queuedTransactions(bytes32 hash) external view returns (bool);\n function queueTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external returns (bytes32);\n function cancelTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external;\n function executeTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external payable returns (bytes memory);\n}\n\ninterface CompInterface {\n function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\n}\n", + "sourcePath": "/Users/janliphardt/Documents/GitHub/optimism/omgx_examples/compound-simple/contracts/GovernorBravoInterfaces.sol", + "ast": { + "absolutePath": "project:/contracts/GovernorBravoInterfaces.sol", + "exportedSymbols": { + "CompInterface": [ + 2636 + ], + "GovernorBravoDelegateStorageV1": [ + 2562 + ], + "GovernorBravoDelegatorStorage": [ + 2484 + ], + "GovernorBravoEvents": [ + 2477 + ], + "TimelockInterface": [ + 2626 + ] + }, + "id": 2637, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2389, + "literals": [ + "solidity", + "^", + "0.5", + ".16" + ], + "nodeType": "PragmaDirective", + "src": "0:24:3" + }, + { + "id": 2390, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "25:33:3" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2477, + "linearizedBaseContracts": [ + 2477 + ], + "name": "GovernorBravoEvents", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": "@notice An event emitted when a new proposal is created", + "id": 2414, + "name": "ProposalCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 2413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2392, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "182:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2391, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "182:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2394, + "indexed": false, + "name": "proposer", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "191:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2393, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "191:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2397, + "indexed": false, + "name": "targets", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "209:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2395, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "209:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2396, + "length": null, + "nodeType": "ArrayTypeName", + "src": "209:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2400, + "indexed": false, + "name": "values", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "228:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2398, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "228:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2399, + "length": null, + "nodeType": "ArrayTypeName", + "src": "228:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2403, + "indexed": false, + "name": "signatures", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "243:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 2401, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "243:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 2402, + "length": null, + "nodeType": "ArrayTypeName", + "src": "243:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2406, + "indexed": false, + "name": "calldatas", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "264:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 2404, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "264:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 2405, + "length": null, + "nodeType": "ArrayTypeName", + "src": "264:7:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2408, + "indexed": false, + "name": "startBlock", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "283:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2407, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "283:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2410, + "indexed": false, + "name": "endBlock", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "300:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2409, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "300:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2412, + "indexed": false, + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "315:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2411, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "315:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "181:153:3" + }, + "src": "160:175:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when a vote has been cast on a proposal\n @param voter The address which casted a vote\n @param proposalId The proposal id which was voted on\n @param support Support value for the vote. 0=against, 1=for, 2=abstain\n @param votes Number of votes which were cast by the voter\n @param reason The reason given for the vote by the voter", + "id": 2426, + "name": "VoteCast", + "nodeType": "EventDefinition", + "parameters": { + "id": 2425, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2416, + "indexed": true, + "name": "voter", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "753:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2415, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2418, + "indexed": false, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "776:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2417, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "776:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2420, + "indexed": false, + "name": "support", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "793:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2419, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "793:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2422, + "indexed": false, + "name": "votes", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "808:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2421, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "808:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2424, + "indexed": false, + "name": "reason", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "820:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2423, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "820:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:82:3" + }, + "src": "738:97:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been canceled", + "id": 2430, + "name": "ProposalCanceled", + "nodeType": "EventDefinition", + "parameters": { + "id": 2429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2428, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2430, + "src": "931:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2427, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "931:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "930:9:3" + }, + "src": "908:32:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been queued in the Timelock", + "id": 2436, + "name": "ProposalQueued", + "nodeType": "EventDefinition", + "parameters": { + "id": 2435, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2432, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2436, + "src": "1048:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2431, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1048:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2434, + "indexed": false, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2436, + "src": "1057:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2433, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1057:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1047:19:3" + }, + "src": "1027:40:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been executed in the Timelock", + "id": 2440, + "name": "ProposalExecuted", + "nodeType": "EventDefinition", + "parameters": { + "id": 2439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2438, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2440, + "src": "1179:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2437, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1179:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1178:9:3" + }, + "src": "1156:32:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when the voting delay is set", + "id": 2446, + "name": "VotingDelaySet", + "nodeType": "EventDefinition", + "parameters": { + "id": 2445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2442, + "indexed": false, + "name": "oldVotingDelay", + "nodeType": "VariableDeclaration", + "scope": 2446, + "src": "1277:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2441, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1277:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2444, + "indexed": false, + "name": "newVotingDelay", + "nodeType": "VariableDeclaration", + "scope": 2446, + "src": "1298:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2443, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1298:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1276:42:3" + }, + "src": "1256:63:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when the voting period is set", + "id": 2452, + "name": "VotingPeriodSet", + "nodeType": "EventDefinition", + "parameters": { + "id": 2451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2448, + "indexed": false, + "name": "oldVotingPeriod", + "nodeType": "VariableDeclaration", + "scope": 2452, + "src": "1410:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2447, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1410:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2450, + "indexed": false, + "name": "newVotingPeriod", + "nodeType": "VariableDeclaration", + "scope": 2452, + "src": "1432:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2449, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1432:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1409:44:3" + }, + "src": "1388:66:3" + }, + { + "anonymous": false, + "documentation": "@notice Emitted when implementation is changed", + "id": 2458, + "name": "NewImplementation", + "nodeType": "EventDefinition", + "parameters": { + "id": 2457, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2454, + "indexed": false, + "name": "oldImplementation", + "nodeType": "VariableDeclaration", + "scope": 2458, + "src": "1539:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2453, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1539:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2456, + "indexed": false, + "name": "newImplementation", + "nodeType": "VariableDeclaration", + "scope": 2458, + "src": "1566:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2455, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1566:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1538:54:3" + }, + "src": "1515:78:3" + }, + { + "anonymous": false, + "documentation": "@notice Emitted when proposal threshold is set", + "id": 2464, + "name": "ProposalThresholdSet", + "nodeType": "EventDefinition", + "parameters": { + "id": 2463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2460, + "indexed": false, + "name": "oldProposalThreshold", + "nodeType": "VariableDeclaration", + "scope": 2464, + "src": "1681:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2459, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1681:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2462, + "indexed": false, + "name": "newProposalThreshold", + "nodeType": "VariableDeclaration", + "scope": 2464, + "src": "1708:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2461, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1708:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1680:54:3" + }, + "src": "1654:81:3" + }, + { + "anonymous": false, + "documentation": "@notice Emitted when pendingAdmin is changed", + "id": 2470, + "name": "NewPendingAdmin", + "nodeType": "EventDefinition", + "parameters": { + "id": 2469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2466, + "indexed": false, + "name": "oldPendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 2470, + "src": "1816:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2465, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1816:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2468, + "indexed": false, + "name": "newPendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 2470, + "src": "1841:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2467, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1841:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1815:50:3" + }, + "src": "1794:72:3" + }, + { + "anonymous": false, + "documentation": "@notice Emitted when pendingAdmin is accepted, which means admin is updated", + "id": 2476, + "name": "NewAdmin", + "nodeType": "EventDefinition", + "parameters": { + "id": 2475, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2472, + "indexed": false, + "name": "oldAdmin", + "nodeType": "VariableDeclaration", + "scope": 2476, + "src": "1971:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2471, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1971:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2474, + "indexed": false, + "name": "newAdmin", + "nodeType": "VariableDeclaration", + "scope": 2476, + "src": "1989:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2473, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1989:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1970:36:3" + }, + "src": "1956:51:3" + } + ], + "scope": 2637, + "src": "61:1948:3" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2484, + "linearizedBaseContracts": [ + 2484 + ], + "name": "GovernorBravoDelegatorStorage", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 2479, + "name": "admin", + "nodeType": "VariableDeclaration", + "scope": 2484, + "src": "2104:20:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2478, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2104:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2481, + "name": "pendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 2484, + "src": "2187:27:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2480, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2187:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2483, + "name": "implementation", + "nodeType": "VariableDeclaration", + "scope": 2484, + "src": "2263:29:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2263:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + } + ], + "scope": 2637, + "src": "2011:284:3" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2485, + "name": "GovernorBravoDelegatorStorage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2484, + "src": "2617:29:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorBravoDelegatorStorage_$2484", + "typeString": "contract GovernorBravoDelegatorStorage" + } + }, + "id": 2486, + "nodeType": "InheritanceSpecifier", + "src": "2617:29:3" + } + ], + "contractDependencies": [ + 2484 + ], + "contractKind": "contract", + "documentation": "@title Storage for Governor Bravo Delegate\n@notice For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\ncontract which implements GovernorBravoDelegateStorageV1 and following the naming convention\nGovernorBravoDelegateStorageVX.", + "fullyImplemented": true, + "id": 2562, + "linearizedBaseContracts": [ + 2562, + 2484 + ], + "name": "GovernorBravoDelegateStorageV1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 2488, + "name": "votingDelay", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "2749:23:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2487, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2749:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2490, + "name": "votingPeriod", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "2843:24:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2489, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2843:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2492, + "name": "proposalThreshold", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "2961:29:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2491, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2961:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2494, + "name": "initialProposalId", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3047:29:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2493, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3047:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2496, + "name": "proposalCount", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3129:25:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2495, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3129:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2498, + "name": "timelock", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3223:33:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + }, + "typeName": { + "contractScope": null, + "id": 2497, + "name": "TimelockInterface", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2626, + "src": "3223:17:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2500, + "name": "comp", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3324:25:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CompInterface_$2636", + "typeString": "contract CompInterface" + }, + "typeName": { + "contractScope": null, + "id": 2499, + "name": "CompInterface", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2636, + "src": "3324:13:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CompInterface_$2636", + "typeString": "contract CompInterface" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2504, + "name": "proposals", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3423:43:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$2545_storage_$", + "typeString": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)" + }, + "typeName": { + "id": 2503, + "keyType": { + "id": 2501, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3432:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "3423:26:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$2545_storage_$", + "typeString": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)" + }, + "valueType": { + "contractScope": null, + "id": 2502, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2545, + "src": "3440:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2508, + "name": "latestProposalIds", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3527:50:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 2507, + "keyType": { + "id": 2505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3536:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3527:25:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 2506, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3547:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "canonicalName": "GovernorBravoDelegateStorageV1.Proposal", + "id": 2545, + "members": [ + { + "constant": false, + "id": 2510, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "3667:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2509, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3667:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2512, + "name": "proposer", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "3729:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3729:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2514, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "3868:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2513, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3868:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2517, + "name": "targets", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "3965:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2515, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3965:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2516, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3965:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2520, + "name": "values", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4094:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2518, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4094:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2519, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4094:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2523, + "name": "signatures", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4191:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 2521, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4191:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 2522, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4191:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2526, + "name": "calldatas", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4296:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 2524, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4296:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 2525, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4296:7:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2528, + "name": "startBlock", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4432:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2527, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4432:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2530, + "name": "endBlock", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4549:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2529, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4549:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2532, + "name": "forVotes", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4643:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2531, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4643:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2534, + "name": "againstVotes", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4742:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2533, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4742:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2536, + "name": "abstainVotes", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4847:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2535, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4847:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2538, + "name": "canceled", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4947:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2537, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4947:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2540, + "name": "executed", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "5043:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5043:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2544, + "name": "receipts", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "5136:37:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Receipt_$2552_storage_$", + "typeString": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)" + }, + "typeName": { + "id": 2543, + "keyType": { + "id": 2541, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5145:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5136:28:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Receipt_$2552_storage_$", + "typeString": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)" + }, + "valueType": { + "contractScope": null, + "id": 2542, + "name": "Receipt", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2552, + "src": "5156:7:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$2552_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Receipt" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Proposal", + "nodeType": "StructDefinition", + "scope": 2562, + "src": "3585:1595:3", + "visibility": "public" + }, + { + "canonicalName": "GovernorBravoDelegateStorageV1.Receipt", + "id": 2552, + "members": [ + { + "constant": false, + "id": 2547, + "name": "hasVoted", + "nodeType": "VariableDeclaration", + "scope": 2552, + "src": "5317:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2546, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5317:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2549, + "name": "support", + "nodeType": "VariableDeclaration", + "scope": 2552, + "src": "5420:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2548, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5420:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2551, + "name": "votes", + "nodeType": "VariableDeclaration", + "scope": 2552, + "src": "5515:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 2550, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "5515:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Receipt", + "nodeType": "StructDefinition", + "scope": 2562, + "src": "5236:298:3", + "visibility": "public" + }, + { + "canonicalName": "GovernorBravoDelegateStorageV1.ProposalState", + "id": 2561, + "members": [ + { + "id": 2553, + "name": "Pending", + "nodeType": "EnumValue", + "src": "5627:7:3" + }, + { + "id": 2554, + "name": "Active", + "nodeType": "EnumValue", + "src": "5644:6:3" + }, + { + "id": 2555, + "name": "Canceled", + "nodeType": "EnumValue", + "src": "5660:8:3" + }, + { + "id": 2556, + "name": "Defeated", + "nodeType": "EnumValue", + "src": "5678:8:3" + }, + { + "id": 2557, + "name": "Succeeded", + "nodeType": "EnumValue", + "src": "5696:9:3" + }, + { + "id": 2558, + "name": "Queued", + "nodeType": "EnumValue", + "src": "5715:6:3" + }, + { + "id": 2559, + "name": "Expired", + "nodeType": "EnumValue", + "src": "5731:7:3" + }, + { + "id": 2560, + "name": "Executed", + "nodeType": "EnumValue", + "src": "5748:8:3" + } + ], + "name": "ProposalState", + "nodeType": "EnumDefinition", + "src": "5598:164:3" + } + ], + "scope": 2637, + "src": "2574:3190:3" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 2626, + "linearizedBaseContracts": [ + 2626 + ], + "name": "TimelockInterface", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 2567, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "delay", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2563, + "nodeType": "ParameterList", + "parameters": [], + "src": "5814:2:3" + }, + "returnParameters": { + "id": 2566, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2565, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2567, + "src": "5840:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2564, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5840:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5839:6:3" + }, + "scope": 2626, + "src": "5800:46:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2572, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "GRACE_PERIOD", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2568, + "nodeType": "ParameterList", + "parameters": [], + "src": "5872:2:3" + }, + "returnParameters": { + "id": 2571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2570, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2572, + "src": "5898:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2569, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5898:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5897:6:3" + }, + "scope": 2626, + "src": "5851:53:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2575, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "acceptAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2573, + "nodeType": "ParameterList", + "parameters": [], + "src": "5929:2:3" + }, + "returnParameters": { + "id": 2574, + "nodeType": "ParameterList", + "parameters": [], + "src": "5940:0:3" + }, + "scope": 2626, + "src": "5909:32:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2582, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "queuedTransactions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2577, + "name": "hash", + "nodeType": "VariableDeclaration", + "scope": 2582, + "src": "5974:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2576, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5974:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5973:14:3" + }, + "returnParameters": { + "id": 2581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2580, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2582, + "src": "6011:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2579, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6011:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6010:6:3" + }, + "scope": 2626, + "src": "5946:71:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2597, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "queueTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2584, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6048:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6048:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2586, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6064:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2585, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6064:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2588, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6076:25:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2587, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6076:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2590, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6103:19:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2589, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6103:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2592, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6124:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2591, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6124:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6047:86:3" + }, + "returnParameters": { + "id": 2596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2595, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6152:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2594, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6152:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6151:9:3" + }, + "scope": 2626, + "src": "6022:139:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2610, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "cancelTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2599, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6193:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2598, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6193:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2601, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6209:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2600, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6209:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2603, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6221:25:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2602, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6221:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2605, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6248:19:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2604, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6248:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2607, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6269:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2606, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6269:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6192:86:3" + }, + "returnParameters": { + "id": 2609, + "nodeType": "ParameterList", + "parameters": [], + "src": "6287:0:3" + }, + "scope": 2626, + "src": "6166:122:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2625, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "executeTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2612, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6321:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2611, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6321:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2614, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6337:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2613, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6337:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2616, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6349:25:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2615, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6349:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2618, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6376:19:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2617, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6376:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2620, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6397:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2619, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6397:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6320:86:3" + }, + "returnParameters": { + "id": 2624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2623, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6433:12:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2622, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6433:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6432:14:3" + }, + "scope": 2626, + "src": "6293:154:3", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2637, + "src": "5766:683:3" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 2636, + "linearizedBaseContracts": [ + 2636 + ], + "name": "CompInterface", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 2635, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPriorVotes", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2631, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2628, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 2635, + "src": "6504:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2627, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6504:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2630, + "name": "blockNumber", + "nodeType": "VariableDeclaration", + "scope": 2635, + "src": "6521:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2629, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6521:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6503:35:3" + }, + "returnParameters": { + "id": 2634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2633, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2635, + "src": "6562:6:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 2632, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "6562:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6561:8:3" + }, + "scope": 2636, + "src": "6481:89:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2637, + "src": "6451:121:3" + } + ], + "src": "0:6573:3" + }, + "legacyAST": { + "attributes": { + "absolutePath": "project:/contracts/GovernorBravoInterfaces.sol", + "exportedSymbols": { + "CompInterface": [ + 2636 + ], + "GovernorBravoDelegateStorageV1": [ + 2562 + ], + "GovernorBravoDelegatorStorage": [ + 2484 + ], + "GovernorBravoEvents": [ + 2477 + ], + "TimelockInterface": [ + 2626 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.5", + ".16" + ] + }, + "id": 2389, + "name": "PragmaDirective", + "src": "0:24:3" + }, + { + "attributes": { + "literals": [ + "experimental", + "ABIEncoderV2" + ] + }, + "id": 2390, + "name": "PragmaDirective", + "src": "25:33:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2477 + ], + "name": "GovernorBravoEvents", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a new proposal is created", + "name": "ProposalCreated" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "id", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2391, + "name": "ElementaryTypeName", + "src": "182:4:3" + } + ], + "id": 2392, + "name": "VariableDeclaration", + "src": "182:7:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "proposer", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2393, + "name": "ElementaryTypeName", + "src": "191:7:3" + } + ], + "id": 2394, + "name": "VariableDeclaration", + "src": "191:16:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "targets", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "address[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "address[]" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2395, + "name": "ElementaryTypeName", + "src": "209:7:3" + } + ], + "id": 2396, + "name": "ArrayTypeName", + "src": "209:9:3" + } + ], + "id": 2397, + "name": "VariableDeclaration", + "src": "209:17:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "values", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "uint256[]" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2398, + "name": "ElementaryTypeName", + "src": "228:4:3" + } + ], + "id": 2399, + "name": "ArrayTypeName", + "src": "228:6:3" + } + ], + "id": 2400, + "name": "VariableDeclaration", + "src": "228:13:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "signatures", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "string[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "string[]" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2401, + "name": "ElementaryTypeName", + "src": "243:6:3" + } + ], + "id": 2402, + "name": "ArrayTypeName", + "src": "243:8:3" + } + ], + "id": 2403, + "name": "VariableDeclaration", + "src": "243:19:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "calldatas", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "bytes[]" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2404, + "name": "ElementaryTypeName", + "src": "264:5:3" + } + ], + "id": 2405, + "name": "ArrayTypeName", + "src": "264:7:3" + } + ], + "id": 2406, + "name": "VariableDeclaration", + "src": "264:17:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "startBlock", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2407, + "name": "ElementaryTypeName", + "src": "283:4:3" + } + ], + "id": 2408, + "name": "VariableDeclaration", + "src": "283:15:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "endBlock", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2409, + "name": "ElementaryTypeName", + "src": "300:4:3" + } + ], + "id": 2410, + "name": "VariableDeclaration", + "src": "300:13:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "description", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2411, + "name": "ElementaryTypeName", + "src": "315:6:3" + } + ], + "id": 2412, + "name": "VariableDeclaration", + "src": "315:18:3" + } + ], + "id": 2413, + "name": "ParameterList", + "src": "181:153:3" + } + ], + "id": 2414, + "name": "EventDefinition", + "src": "160:175:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a vote has been cast on a proposal\n @param voter The address which casted a vote\n @param proposalId The proposal id which was voted on\n @param support Support value for the vote. 0=against, 1=for, 2=abstain\n @param votes Number of votes which were cast by the voter\n @param reason The reason given for the vote by the voter", + "name": "VoteCast" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "voter", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2415, + "name": "ElementaryTypeName", + "src": "753:7:3" + } + ], + "id": 2416, + "name": "VariableDeclaration", + "src": "753:21:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "proposalId", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2417, + "name": "ElementaryTypeName", + "src": "776:4:3" + } + ], + "id": 2418, + "name": "VariableDeclaration", + "src": "776:15:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "support", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 2419, + "name": "ElementaryTypeName", + "src": "793:5:3" + } + ], + "id": 2420, + "name": "VariableDeclaration", + "src": "793:13:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "votes", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2421, + "name": "ElementaryTypeName", + "src": "808:4:3" + } + ], + "id": 2422, + "name": "VariableDeclaration", + "src": "808:10:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "reason", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2423, + "name": "ElementaryTypeName", + "src": "820:6:3" + } + ], + "id": 2424, + "name": "VariableDeclaration", + "src": "820:13:3" + } + ], + "id": 2425, + "name": "ParameterList", + "src": "752:82:3" + } + ], + "id": 2426, + "name": "EventDefinition", + "src": "738:97:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been canceled", + "name": "ProposalCanceled" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "id", + "scope": 2430, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2427, + "name": "ElementaryTypeName", + "src": "931:4:3" + } + ], + "id": 2428, + "name": "VariableDeclaration", + "src": "931:7:3" + } + ], + "id": 2429, + "name": "ParameterList", + "src": "930:9:3" + } + ], + "id": 2430, + "name": "EventDefinition", + "src": "908:32:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been queued in the Timelock", + "name": "ProposalQueued" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "id", + "scope": 2436, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2431, + "name": "ElementaryTypeName", + "src": "1048:4:3" + } + ], + "id": 2432, + "name": "VariableDeclaration", + "src": "1048:7:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "eta", + "scope": 2436, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2433, + "name": "ElementaryTypeName", + "src": "1057:4:3" + } + ], + "id": 2434, + "name": "VariableDeclaration", + "src": "1057:8:3" + } + ], + "id": 2435, + "name": "ParameterList", + "src": "1047:19:3" + } + ], + "id": 2436, + "name": "EventDefinition", + "src": "1027:40:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been executed in the Timelock", + "name": "ProposalExecuted" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "id", + "scope": 2440, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2437, + "name": "ElementaryTypeName", + "src": "1179:4:3" + } + ], + "id": 2438, + "name": "VariableDeclaration", + "src": "1179:7:3" + } + ], + "id": 2439, + "name": "ParameterList", + "src": "1178:9:3" + } + ], + "id": 2440, + "name": "EventDefinition", + "src": "1156:32:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when the voting delay is set", + "name": "VotingDelaySet" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldVotingDelay", + "scope": 2446, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2441, + "name": "ElementaryTypeName", + "src": "1277:4:3" + } + ], + "id": 2442, + "name": "VariableDeclaration", + "src": "1277:19:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newVotingDelay", + "scope": 2446, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2443, + "name": "ElementaryTypeName", + "src": "1298:4:3" + } + ], + "id": 2444, + "name": "VariableDeclaration", + "src": "1298:19:3" + } + ], + "id": 2445, + "name": "ParameterList", + "src": "1276:42:3" + } + ], + "id": 2446, + "name": "EventDefinition", + "src": "1256:63:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when the voting period is set", + "name": "VotingPeriodSet" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldVotingPeriod", + "scope": 2452, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2447, + "name": "ElementaryTypeName", + "src": "1410:4:3" + } + ], + "id": 2448, + "name": "VariableDeclaration", + "src": "1410:20:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newVotingPeriod", + "scope": 2452, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2449, + "name": "ElementaryTypeName", + "src": "1432:4:3" + } + ], + "id": 2450, + "name": "VariableDeclaration", + "src": "1432:20:3" + } + ], + "id": 2451, + "name": "ParameterList", + "src": "1409:44:3" + } + ], + "id": 2452, + "name": "EventDefinition", + "src": "1388:66:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice Emitted when implementation is changed", + "name": "NewImplementation" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldImplementation", + "scope": 2458, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2453, + "name": "ElementaryTypeName", + "src": "1539:7:3" + } + ], + "id": 2454, + "name": "VariableDeclaration", + "src": "1539:25:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newImplementation", + "scope": 2458, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2455, + "name": "ElementaryTypeName", + "src": "1566:7:3" + } + ], + "id": 2456, + "name": "VariableDeclaration", + "src": "1566:25:3" + } + ], + "id": 2457, + "name": "ParameterList", + "src": "1538:54:3" + } + ], + "id": 2458, + "name": "EventDefinition", + "src": "1515:78:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice Emitted when proposal threshold is set", + "name": "ProposalThresholdSet" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldProposalThreshold", + "scope": 2464, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2459, + "name": "ElementaryTypeName", + "src": "1681:4:3" + } + ], + "id": 2460, + "name": "VariableDeclaration", + "src": "1681:25:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newProposalThreshold", + "scope": 2464, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2461, + "name": "ElementaryTypeName", + "src": "1708:4:3" + } + ], + "id": 2462, + "name": "VariableDeclaration", + "src": "1708:25:3" + } + ], + "id": 2463, + "name": "ParameterList", + "src": "1680:54:3" + } + ], + "id": 2464, + "name": "EventDefinition", + "src": "1654:81:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice Emitted when pendingAdmin is changed", + "name": "NewPendingAdmin" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldPendingAdmin", + "scope": 2470, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2465, + "name": "ElementaryTypeName", + "src": "1816:7:3" + } + ], + "id": 2466, + "name": "VariableDeclaration", + "src": "1816:23:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newPendingAdmin", + "scope": 2470, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2467, + "name": "ElementaryTypeName", + "src": "1841:7:3" + } + ], + "id": 2468, + "name": "VariableDeclaration", + "src": "1841:23:3" + } + ], + "id": 2469, + "name": "ParameterList", + "src": "1815:50:3" + } + ], + "id": 2470, + "name": "EventDefinition", + "src": "1794:72:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice Emitted when pendingAdmin is accepted, which means admin is updated", + "name": "NewAdmin" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldAdmin", + "scope": 2476, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2471, + "name": "ElementaryTypeName", + "src": "1971:7:3" + } + ], + "id": 2472, + "name": "VariableDeclaration", + "src": "1971:16:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newAdmin", + "scope": 2476, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2473, + "name": "ElementaryTypeName", + "src": "1989:7:3" + } + ], + "id": 2474, + "name": "VariableDeclaration", + "src": "1989:16:3" + } + ], + "id": 2475, + "name": "ParameterList", + "src": "1970:36:3" + } + ], + "id": 2476, + "name": "EventDefinition", + "src": "1956:51:3" + } + ], + "id": 2477, + "name": "ContractDefinition", + "src": "61:1948:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2484 + ], + "name": "GovernorBravoDelegatorStorage", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "admin", + "scope": 2484, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2478, + "name": "ElementaryTypeName", + "src": "2104:7:3" + } + ], + "id": 2479, + "name": "VariableDeclaration", + "src": "2104:20:3" + }, + { + "attributes": { + "constant": false, + "name": "pendingAdmin", + "scope": 2484, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2480, + "name": "ElementaryTypeName", + "src": "2187:7:3" + } + ], + "id": 2481, + "name": "VariableDeclaration", + "src": "2187:27:3" + }, + { + "attributes": { + "constant": false, + "name": "implementation", + "scope": 2484, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2482, + "name": "ElementaryTypeName", + "src": "2263:7:3" + } + ], + "id": 2483, + "name": "VariableDeclaration", + "src": "2263:29:3" + } + ], + "id": 2484, + "name": "ContractDefinition", + "src": "2011:284:3" + }, + { + "attributes": { + "contractDependencies": [ + 2484 + ], + "contractKind": "contract", + "documentation": "@title Storage for Governor Bravo Delegate\n@notice For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\ncontract which implements GovernorBravoDelegateStorageV1 and following the naming convention\nGovernorBravoDelegateStorageVX.", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2562, + 2484 + ], + "name": "GovernorBravoDelegateStorageV1", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "GovernorBravoDelegatorStorage", + "referencedDeclaration": 2484, + "type": "contract GovernorBravoDelegatorStorage" + }, + "id": 2485, + "name": "UserDefinedTypeName", + "src": "2617:29:3" + } + ], + "id": 2486, + "name": "InheritanceSpecifier", + "src": "2617:29:3" + }, + { + "attributes": { + "constant": false, + "name": "votingDelay", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2487, + "name": "ElementaryTypeName", + "src": "2749:4:3" + } + ], + "id": 2488, + "name": "VariableDeclaration", + "src": "2749:23:3" + }, + { + "attributes": { + "constant": false, + "name": "votingPeriod", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2489, + "name": "ElementaryTypeName", + "src": "2843:4:3" + } + ], + "id": 2490, + "name": "VariableDeclaration", + "src": "2843:24:3" + }, + { + "attributes": { + "constant": false, + "name": "proposalThreshold", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2491, + "name": "ElementaryTypeName", + "src": "2961:4:3" + } + ], + "id": 2492, + "name": "VariableDeclaration", + "src": "2961:29:3" + }, + { + "attributes": { + "constant": false, + "name": "initialProposalId", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2493, + "name": "ElementaryTypeName", + "src": "3047:4:3" + } + ], + "id": 2494, + "name": "VariableDeclaration", + "src": "3047:29:3" + }, + { + "attributes": { + "constant": false, + "name": "proposalCount", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2495, + "name": "ElementaryTypeName", + "src": "3129:4:3" + } + ], + "id": 2496, + "name": "VariableDeclaration", + "src": "3129:25:3" + }, + { + "attributes": { + "constant": false, + "name": "timelock", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "contract TimelockInterface", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "TimelockInterface", + "referencedDeclaration": 2626, + "type": "contract TimelockInterface" + }, + "id": 2497, + "name": "UserDefinedTypeName", + "src": "3223:17:3" + } + ], + "id": 2498, + "name": "VariableDeclaration", + "src": "3223:33:3" + }, + { + "attributes": { + "constant": false, + "name": "comp", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "contract CompInterface", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "CompInterface", + "referencedDeclaration": 2636, + "type": "contract CompInterface" + }, + "id": 2499, + "name": "UserDefinedTypeName", + "src": "3324:13:3" + } + ], + "id": 2500, + "name": "VariableDeclaration", + "src": "3324:25:3" + }, + { + "attributes": { + "constant": false, + "name": "proposals", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2501, + "name": "ElementaryTypeName", + "src": "3432:4:3" + }, + { + "attributes": { + "contractScope": null, + "name": "Proposal", + "referencedDeclaration": 2545, + "type": "struct GovernorBravoDelegateStorageV1.Proposal" + }, + "id": 2502, + "name": "UserDefinedTypeName", + "src": "3440:8:3" + } + ], + "id": 2503, + "name": "Mapping", + "src": "3423:26:3" + } + ], + "id": 2504, + "name": "VariableDeclaration", + "src": "3423:43:3" + }, + { + "attributes": { + "constant": false, + "name": "latestProposalIds", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => uint256)", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2505, + "name": "ElementaryTypeName", + "src": "3536:7:3" + }, + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2506, + "name": "ElementaryTypeName", + "src": "3547:4:3" + } + ], + "id": 2507, + "name": "Mapping", + "src": "3527:25:3" + } + ], + "id": 2508, + "name": "VariableDeclaration", + "src": "3527:50:3" + }, + { + "attributes": { + "canonicalName": "GovernorBravoDelegateStorageV1.Proposal", + "name": "Proposal", + "scope": 2562, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "id", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2509, + "name": "ElementaryTypeName", + "src": "3667:4:3" + } + ], + "id": 2510, + "name": "VariableDeclaration", + "src": "3667:7:3" + }, + { + "attributes": { + "constant": false, + "name": "proposer", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2511, + "name": "ElementaryTypeName", + "src": "3729:7:3" + } + ], + "id": 2512, + "name": "VariableDeclaration", + "src": "3729:16:3" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2513, + "name": "ElementaryTypeName", + "src": "3868:4:3" + } + ], + "id": 2514, + "name": "VariableDeclaration", + "src": "3868:8:3" + }, + { + "attributes": { + "constant": false, + "name": "targets", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "address[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "address[]" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2515, + "name": "ElementaryTypeName", + "src": "3965:7:3" + } + ], + "id": 2516, + "name": "ArrayTypeName", + "src": "3965:9:3" + } + ], + "id": 2517, + "name": "VariableDeclaration", + "src": "3965:17:3" + }, + { + "attributes": { + "constant": false, + "name": "values", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "uint256[]" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2518, + "name": "ElementaryTypeName", + "src": "4094:4:3" + } + ], + "id": 2519, + "name": "ArrayTypeName", + "src": "4094:6:3" + } + ], + "id": 2520, + "name": "VariableDeclaration", + "src": "4094:13:3" + }, + { + "attributes": { + "constant": false, + "name": "signatures", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "string[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "string[]" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2521, + "name": "ElementaryTypeName", + "src": "4191:6:3" + } + ], + "id": 2522, + "name": "ArrayTypeName", + "src": "4191:8:3" + } + ], + "id": 2523, + "name": "VariableDeclaration", + "src": "4191:19:3" + }, + { + "attributes": { + "constant": false, + "name": "calldatas", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "bytes[]" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2524, + "name": "ElementaryTypeName", + "src": "4296:5:3" + } + ], + "id": 2525, + "name": "ArrayTypeName", + "src": "4296:7:3" + } + ], + "id": 2526, + "name": "VariableDeclaration", + "src": "4296:17:3" + }, + { + "attributes": { + "constant": false, + "name": "startBlock", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2527, + "name": "ElementaryTypeName", + "src": "4432:4:3" + } + ], + "id": 2528, + "name": "VariableDeclaration", + "src": "4432:15:3" + }, + { + "attributes": { + "constant": false, + "name": "endBlock", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2529, + "name": "ElementaryTypeName", + "src": "4549:4:3" + } + ], + "id": 2530, + "name": "VariableDeclaration", + "src": "4549:13:3" + }, + { + "attributes": { + "constant": false, + "name": "forVotes", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2531, + "name": "ElementaryTypeName", + "src": "4643:4:3" + } + ], + "id": 2532, + "name": "VariableDeclaration", + "src": "4643:13:3" + }, + { + "attributes": { + "constant": false, + "name": "againstVotes", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2533, + "name": "ElementaryTypeName", + "src": "4742:4:3" + } + ], + "id": 2534, + "name": "VariableDeclaration", + "src": "4742:17:3" + }, + { + "attributes": { + "constant": false, + "name": "abstainVotes", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2535, + "name": "ElementaryTypeName", + "src": "4847:4:3" + } + ], + "id": 2536, + "name": "VariableDeclaration", + "src": "4847:17:3" + }, + { + "attributes": { + "constant": false, + "name": "canceled", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2537, + "name": "ElementaryTypeName", + "src": "4947:4:3" + } + ], + "id": 2538, + "name": "VariableDeclaration", + "src": "4947:13:3" + }, + { + "attributes": { + "constant": false, + "name": "executed", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2539, + "name": "ElementaryTypeName", + "src": "5043:4:3" + } + ], + "id": 2540, + "name": "VariableDeclaration", + "src": "5043:13:3" + }, + { + "attributes": { + "constant": false, + "name": "receipts", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2541, + "name": "ElementaryTypeName", + "src": "5145:7:3" + }, + { + "attributes": { + "contractScope": null, + "name": "Receipt", + "referencedDeclaration": 2552, + "type": "struct GovernorBravoDelegateStorageV1.Receipt" + }, + "id": 2542, + "name": "UserDefinedTypeName", + "src": "5156:7:3" + } + ], + "id": 2543, + "name": "Mapping", + "src": "5136:28:3" + } + ], + "id": 2544, + "name": "VariableDeclaration", + "src": "5136:37:3" + } + ], + "id": 2545, + "name": "StructDefinition", + "src": "3585:1595:3" + }, + { + "attributes": { + "canonicalName": "GovernorBravoDelegateStorageV1.Receipt", + "name": "Receipt", + "scope": 2562, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "hasVoted", + "scope": 2552, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2546, + "name": "ElementaryTypeName", + "src": "5317:4:3" + } + ], + "id": 2547, + "name": "VariableDeclaration", + "src": "5317:13:3" + }, + { + "attributes": { + "constant": false, + "name": "support", + "scope": 2552, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 2548, + "name": "ElementaryTypeName", + "src": "5420:5:3" + } + ], + "id": 2549, + "name": "VariableDeclaration", + "src": "5420:13:3" + }, + { + "attributes": { + "constant": false, + "name": "votes", + "scope": 2552, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 2550, + "name": "ElementaryTypeName", + "src": "5515:6:3" + } + ], + "id": 2551, + "name": "VariableDeclaration", + "src": "5515:12:3" + } + ], + "id": 2552, + "name": "StructDefinition", + "src": "5236:298:3" + }, + { + "attributes": { + "canonicalName": "GovernorBravoDelegateStorageV1.ProposalState", + "name": "ProposalState" + }, + "children": [ + { + "attributes": { + "name": "Pending" + }, + "id": 2553, + "name": "EnumValue", + "src": "5627:7:3" + }, + { + "attributes": { + "name": "Active" + }, + "id": 2554, + "name": "EnumValue", + "src": "5644:6:3" + }, + { + "attributes": { + "name": "Canceled" + }, + "id": 2555, + "name": "EnumValue", + "src": "5660:8:3" + }, + { + "attributes": { + "name": "Defeated" + }, + "id": 2556, + "name": "EnumValue", + "src": "5678:8:3" + }, + { + "attributes": { + "name": "Succeeded" + }, + "id": 2557, + "name": "EnumValue", + "src": "5696:9:3" + }, + { + "attributes": { + "name": "Queued" + }, + "id": 2558, + "name": "EnumValue", + "src": "5715:6:3" + }, + { + "attributes": { + "name": "Expired" + }, + "id": 2559, + "name": "EnumValue", + "src": "5731:7:3" + }, + { + "attributes": { + "name": "Executed" + }, + "id": 2560, + "name": "EnumValue", + "src": "5748:8:3" + } + ], + "id": 2561, + "name": "EnumDefinition", + "src": "5598:164:3" + } + ], + "id": 2562, + "name": "ContractDefinition", + "src": "2574:3190:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 2626 + ], + "name": "TimelockInterface", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "delay", + "scope": 2626, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2563, + "name": "ParameterList", + "src": "5814:2:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2567, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2564, + "name": "ElementaryTypeName", + "src": "5840:4:3" + } + ], + "id": 2565, + "name": "VariableDeclaration", + "src": "5840:4:3" + } + ], + "id": 2566, + "name": "ParameterList", + "src": "5839:6:3" + } + ], + "id": 2567, + "name": "FunctionDefinition", + "src": "5800:46:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "GRACE_PERIOD", + "scope": 2626, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2568, + "name": "ParameterList", + "src": "5872:2:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2572, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2569, + "name": "ElementaryTypeName", + "src": "5898:4:3" + } + ], + "id": 2570, + "name": "VariableDeclaration", + "src": "5898:4:3" + } + ], + "id": 2571, + "name": "ParameterList", + "src": "5897:6:3" + } + ], + "id": 2572, + "name": "FunctionDefinition", + "src": "5851:53:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "acceptAdmin", + "scope": 2626, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2573, + "name": "ParameterList", + "src": "5929:2:3" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2574, + "name": "ParameterList", + "src": "5940:0:3" + } + ], + "id": 2575, + "name": "FunctionDefinition", + "src": "5909:32:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "queuedTransactions", + "scope": 2626, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "hash", + "scope": 2582, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2576, + "name": "ElementaryTypeName", + "src": "5974:7:3" + } + ], + "id": 2577, + "name": "VariableDeclaration", + "src": "5974:12:3" + } + ], + "id": 2578, + "name": "ParameterList", + "src": "5973:14:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2582, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2579, + "name": "ElementaryTypeName", + "src": "6011:4:3" + } + ], + "id": 2580, + "name": "VariableDeclaration", + "src": "6011:4:3" + } + ], + "id": 2581, + "name": "ParameterList", + "src": "6010:6:3" + } + ], + "id": 2582, + "name": "FunctionDefinition", + "src": "5946:71:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "queueTransaction", + "scope": 2626, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 2597, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2583, + "name": "ElementaryTypeName", + "src": "6048:7:3" + } + ], + "id": 2584, + "name": "VariableDeclaration", + "src": "6048:14:3" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 2597, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2585, + "name": "ElementaryTypeName", + "src": "6064:4:3" + } + ], + "id": 2586, + "name": "VariableDeclaration", + "src": "6064:10:3" + }, + { + "attributes": { + "constant": false, + "name": "signature", + "scope": 2597, + "stateVariable": false, + "storageLocation": "calldata", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2587, + "name": "ElementaryTypeName", + "src": "6076:6:3" + } + ], + "id": 2588, + "name": "VariableDeclaration", + "src": "6076:25:3" + }, + { + "attributes": { + "constant": false, + "name": "data", + "scope": 2597, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2589, + "name": "ElementaryTypeName", + "src": "6103:5:3" + } + ], + "id": 2590, + "name": "VariableDeclaration", + "src": "6103:19:3" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 2597, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2591, + "name": "ElementaryTypeName", + "src": "6124:4:3" + } + ], + "id": 2592, + "name": "VariableDeclaration", + "src": "6124:8:3" + } + ], + "id": 2593, + "name": "ParameterList", + "src": "6047:86:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2597, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2594, + "name": "ElementaryTypeName", + "src": "6152:7:3" + } + ], + "id": 2595, + "name": "VariableDeclaration", + "src": "6152:7:3" + } + ], + "id": 2596, + "name": "ParameterList", + "src": "6151:9:3" + } + ], + "id": 2597, + "name": "FunctionDefinition", + "src": "6022:139:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "cancelTransaction", + "scope": 2626, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 2610, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2598, + "name": "ElementaryTypeName", + "src": "6193:7:3" + } + ], + "id": 2599, + "name": "VariableDeclaration", + "src": "6193:14:3" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 2610, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2600, + "name": "ElementaryTypeName", + "src": "6209:4:3" + } + ], + "id": 2601, + "name": "VariableDeclaration", + "src": "6209:10:3" + }, + { + "attributes": { + "constant": false, + "name": "signature", + "scope": 2610, + "stateVariable": false, + "storageLocation": "calldata", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2602, + "name": "ElementaryTypeName", + "src": "6221:6:3" + } + ], + "id": 2603, + "name": "VariableDeclaration", + "src": "6221:25:3" + }, + { + "attributes": { + "constant": false, + "name": "data", + "scope": 2610, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2604, + "name": "ElementaryTypeName", + "src": "6248:5:3" + } + ], + "id": 2605, + "name": "VariableDeclaration", + "src": "6248:19:3" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 2610, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2606, + "name": "ElementaryTypeName", + "src": "6269:4:3" + } + ], + "id": 2607, + "name": "VariableDeclaration", + "src": "6269:8:3" + } + ], + "id": 2608, + "name": "ParameterList", + "src": "6192:86:3" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2609, + "name": "ParameterList", + "src": "6287:0:3" + } + ], + "id": 2610, + "name": "FunctionDefinition", + "src": "6166:122:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "executeTransaction", + "scope": 2626, + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 2625, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2611, + "name": "ElementaryTypeName", + "src": "6321:7:3" + } + ], + "id": 2612, + "name": "VariableDeclaration", + "src": "6321:14:3" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 2625, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2613, + "name": "ElementaryTypeName", + "src": "6337:4:3" + } + ], + "id": 2614, + "name": "VariableDeclaration", + "src": "6337:10:3" + }, + { + "attributes": { + "constant": false, + "name": "signature", + "scope": 2625, + "stateVariable": false, + "storageLocation": "calldata", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2615, + "name": "ElementaryTypeName", + "src": "6349:6:3" + } + ], + "id": 2616, + "name": "VariableDeclaration", + "src": "6349:25:3" + }, + { + "attributes": { + "constant": false, + "name": "data", + "scope": 2625, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2617, + "name": "ElementaryTypeName", + "src": "6376:5:3" + } + ], + "id": 2618, + "name": "VariableDeclaration", + "src": "6376:19:3" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 2625, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2619, + "name": "ElementaryTypeName", + "src": "6397:4:3" + } + ], + "id": 2620, + "name": "VariableDeclaration", + "src": "6397:8:3" + } + ], + "id": 2621, + "name": "ParameterList", + "src": "6320:86:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2625, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2622, + "name": "ElementaryTypeName", + "src": "6433:5:3" + } + ], + "id": 2623, + "name": "VariableDeclaration", + "src": "6433:12:3" + } + ], + "id": 2624, + "name": "ParameterList", + "src": "6432:14:3" + } + ], + "id": 2625, + "name": "FunctionDefinition", + "src": "6293:154:3" + } + ], + "id": 2626, + "name": "ContractDefinition", + "src": "5766:683:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 2636 + ], + "name": "CompInterface", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getPriorVotes", + "scope": 2636, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "account", + "scope": 2635, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2627, + "name": "ElementaryTypeName", + "src": "6504:7:3" + } + ], + "id": 2628, + "name": "VariableDeclaration", + "src": "6504:15:3" + }, + { + "attributes": { + "constant": false, + "name": "blockNumber", + "scope": 2635, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2629, + "name": "ElementaryTypeName", + "src": "6521:4:3" + } + ], + "id": 2630, + "name": "VariableDeclaration", + "src": "6521:16:3" + } + ], + "id": 2631, + "name": "ParameterList", + "src": "6503:35:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2635, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 2632, + "name": "ElementaryTypeName", + "src": "6562:6:3" + } + ], + "id": 2633, + "name": "VariableDeclaration", + "src": "6562:6:3" + } + ], + "id": 2634, + "name": "ParameterList", + "src": "6561:8:3" + } + ], + "id": 2635, + "name": "FunctionDefinition", + "src": "6481:89:3" + } + ], + "id": 2636, + "name": "ContractDefinition", + "src": "6451:121:3" + } + ], + "id": 2637, + "name": "SourceUnit", + "src": "0:6573:3" + }, + "compiler": { + "name": "solc", + "version": "0.5.16" + }, + "networks": {}, + "schemaVersion": "3.4.3", + "updatedAt": "2021-09-05T21:45:41.182Z", + "devdoc": { + "methods": {}, + "title": "Storage for Governor Bravo Delegate" + }, + "userdoc": { + "methods": {}, + "notice": "For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new contract which implements GovernorBravoDelegateStorageV1 and following the naming convention GovernorBravoDelegateStorageVX." + } +} \ No newline at end of file diff --git a/omgx_examples/compound-simple/build-ovm/GovernorBravoDelegator.json b/omgx_examples/compound-simple/build-ovm/GovernorBravoDelegator.json new file mode 100644 index 000000000000..54606fa0a559 --- /dev/null +++ b/omgx_examples/compound-simple/build-ovm/GovernorBravoDelegator.json @@ -0,0 +1,3786 @@ +{ + "contractName": "GovernorBravoDelegator", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "timelock_", + "type": "address" + }, + { + "internalType": "address", + "name": "comp_", + "type": "address" + }, + { + "internalType": "address", + "name": "admin_", + "type": "address" + }, + { + "internalType": "address", + "name": "implementation_", + "type": "address" + }, + { + "internalType": "uint256", + "name": "votingPeriod_", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "votingDelay_", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "proposalThreshold_", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "NewAdmin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldImplementation", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newImplementation", + "type": "address" + } + ], + "name": "NewImplementation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldPendingAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newPendingAdmin", + "type": "address" + } + ], + "name": "NewPendingAdmin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "ProposalCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "proposer", + "type": "address" + }, + { + "indexed": false, + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "string[]", + "name": "signatures", + "type": "string[]" + }, + { + "indexed": false, + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "startBlock", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "endBlock", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "ProposalCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "ProposalExecuted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "ProposalQueued", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldProposalThreshold", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newProposalThreshold", + "type": "uint256" + } + ], + "name": "ProposalThresholdSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "votes", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "VoteCast", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldVotingDelay", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newVotingDelay", + "type": "uint256" + } + ], + "name": "VotingDelaySet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldVotingPeriod", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newVotingPeriod", + "type": "uint256" + } + ], + "name": "VotingPeriodSet", + "type": "event" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "constant": true, + "inputs": [], + "name": "admin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "implementation", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "pendingAdmin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "implementation_", + "type": "address" + } + ], + "name": "_setImplementation", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.16-develop.2020.11.10+ovm+commit.00cdd204\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"timelock_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"comp_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"votingPeriod_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votingDelay_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalThreshold_\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldImplementation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"NewImplementation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldPendingAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"NewPendingAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"ProposalQueued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldProposalThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalThresholdSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodSet\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"_setImplementation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"_setImplementation(address)\":{\"params\":{\"implementation_\":\"The address of the new implementation for delegation\"}}}},\"userdoc\":{\"methods\":{\"_setImplementation(address)\":{\"notice\":\"Called by the admin to update the implementation of the delegator\"}}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/GovernorBravoDelegator.sol\":\"GovernorBravoDelegator\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"project:/contracts/GovernorBravoDelegator.sol\":{\"keccak256\":\"0x9050b69a469b49e1e7959484a511d1a8adaee773654866cdce97fd913a998483\",\"urls\":[\"bzz-raw://fd0ee13671d0241414034667e176e039e90fbd809d3b0bc6060a25e3255fc02e\",\"dweb:/ipfs/QmaD5g9a1PB2EgyQRS61UPe8cYGonkfzoBAwE82gE6MQpU\"]},\"project:/contracts/GovernorBravoInterfaces.sol\":{\"keccak256\":\"0x74cb8a82fef2906cbee7c96d7aa72e46b01df83859704a35a4a63d3aa9493718\",\"urls\":[\"bzz-raw://82b0c9f82c46927ea7128afc44921d60af23461da7f6d0c29484b5b92ad2b87a\",\"dweb:/ipfs/QmbNHAYEhhXzmdsmfMPLuGAGceq9oHD9AaDmyrnVaXPrhh\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001c576000806200001962000328565b50505b5060405162000f7638038062000f768339810160408190526200003f9162000569565b5a6200004a62000395565b600060018162000059620003f1565b816001600160a01b0302191690836001600160a01b03160217906200007d6200043e565b505050620000d7848888868686604051602401620000a095949392919062000757565b604051601f1981830301815260409190915263344fe42d60e21b6020820180516001600160e01b0390811690921790526200012f16565b620000eb846001600160e01b03620001c416565b846000600181620000fb620003f1565b816001600160a01b0302191690836001600160a01b03160217906200011f6200043e565b505050505050505050506200085a565b60006060836001600160a01b0316836040516200014d919062000723565b600060405180830381855a620001626200048d565b50505050509150503d806000811462000198576040513d603f01601f191681016040523d815291503d6000602084013e6200019d565b606091505b50915091506000821415620001be573d60208201620001bb62000328565b50505b50505050565b600080620001d1620003f1565b906101000a90046001600160a01b03166001600160a01b03165a620001f562000395565b6001600160a01b031614620002325760405162461bcd60e51b81526004016200021e90620007bf565b604051809103906200022f62000328565b50505b6001600160a01b0381166200026f5760405162461bcd60e51b81526004016200025b90620007ad565b604051809103906200026c62000328565b50505b60008060026200027e620003f1565b906101000a90046001600160a01b0316905081600260006101000a81620002a4620003f1565b816001600160a01b0302191690836001600160a01b0316021790620002c86200043e565b5050507fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a816002600090620002fc620003f1565b906101000a90046001600160a01b03166040516200031c92919062000738565b60405180910390a15050565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156200036257808601518282016040015260200162000345565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b6040811015620003ec57600082820152602001620003d3565b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b80516000825293506020620003d3565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b600081526020620003d3565b63ffe73914598160e01b8152836004820152846024820152606060448201528660648201526084810160005b88811015620004d3578088015182820152602001620004b9565b506060828960a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8b8b82606087013350600060045af15059845b8181101562000536576000815260200162000520565b50919b505050505050565b60008151905062000552816200082d565b92915050565b60008151905062000552816200084f565b600080600080600080600060e0888a03121562000590576000806200058d62000328565b50505b60006200059e8a8a62000541565b9750506020620005b18a828b0162000541565b9650506040620005c48a828b0162000541565b9550506060620005d78a828b0162000541565b9450506080620005ea8a828b0162000558565b93505060a0620005fd8a828b0162000558565b92505060c0620006108a828b0162000558565b91505092959891949750929550565b6200062a81620007e9565b82525050565b60006200063d82620007d1565b620006498185620007db565b93506200065b818560208601620007fe565b9290920192915050565b600062000674604a83620007e0565b60008051602062000f5683398151915281527f656d656e746174696f6e3a20696e76616c696420696d706c656d656e746174696020820152696f6e206164647265737360b01b604082015260600192915050565b6000620006d7603683620007e0565b60008051602062000f5683398151915281527f656d656e746174696f6e3a2061646d696e206f6e6c7900000000000000000000602082015260400192915050565b6200062a81620007fb565b600062000731828462000630565b9392505050565b604081016200074882856200061f565b6200073160208301846200061f565b60a081016200076782886200061f565b6200077660208301876200061f565b62000785604083018662000718565b62000794606083018562000718565b620007a3608083018462000718565b9695505050505050565b60208082528101620005528162000665565b602080825281016200055281620006c8565b6000815192915050565b919050565b90815260200190565b60006001600160a01b03821662000552565b90565b60005b838110156200081b57808201518382015260200162000801565b83811115620001be5750506000910152565b6200083881620007e9565b81146200084c57600080620003ec62000328565b50565b6200083881620007fb565b6106ec806200086a6000396000f3fe60806040526004361061003f5760003560e01c806326782247146100ea5780635c60da1b1461011e578063bb913f411461013c578063f851a44014610167575b600080600261004c610303565b906101000a90046001600160a01b03166001600160a01b0316600036604051610076929190610626565b600060405180830381855a610089610363565b50505050509150503d80600081146100bd576040513d603f01601f191681016040523d815291503d6000602084013e6100c2565b606091505b505090506040513d6000823e8180156100d9573d82f35b3d826100e3610413565b5050505050005b3480156100ff576000806100fc610413565b50505b50610108610185565b6040516101159190610633565b60405180910390f35b34801561013357600080610130610413565b50505b506101086101a4565b3480156101515760008061014e610413565b50505b50610165610160366004610523565b6101b0565b005b34801561017c57600080610179610413565b50505b506101086102fc565b60006001610191610303565b906101000a90046001600160a01b031681565b60006002610191610303565b6000806101bb610303565b906101000a90046001600160a01b03166001600160a01b03165a6101dd61047e565b6001600160a01b0316146102155760405162461bcd60e51b815260040161020390610673565b60405180910390610212610413565b50505b6001600160a01b03811661024d5760405162461bcd60e51b815260040161023b90610663565b6040518091039061024a610413565b50505b600080600261025a610303565b906101000a90046001600160a01b0316905081600260006101000a8161027e610303565b816001600160a01b0302191690836001600160a01b03160217906102a06104c4565b5050507fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a8160026000906102d2610303565b906101000a90046001600160a01b03166040516102f0929190610641565b60405180910390a15050565b6000806101915b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b604081101561035e57600082820152602001610347565b505050565b63ffe73914598160e01b8152836004820152846024820152606060448201528660648201526084810160005b888110156103a757808801518282015260200161038f565b506060828960a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8b8b82606087013350600060045af15059845b8181101561040857600081526020016103f4565b50919b505050505050565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561044b578086015182820160400152602001610430565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b80516000825293506020610347565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b600081526020610347565b803561051d816106ae565b92915050565b60006020828403121561053e5760008061053b610413565b50505b600061054a8484610512565b949350505050565b61055b81610691565b82525050565b600061056d8385610683565b935061057a8385846106a2565b50500190565b600061058d604a83610688565b6000805160206106cc83398151915281527f656d656e746174696f6e3a20696e76616c696420696d706c656d656e746174696020820152696f6e206164647265737360b01b604082015260600192915050565b60006105ed603683610688565b6000805160206106cc833981519152815275656d656e746174696f6e3a2061646d696e206f6e6c7960501b602082015260400192915050565b600061054a828486610561565b6020810161051d8284610552565b6040810161064f8285610552565b61065c6020830184610552565b9392505050565b6020808252810161051d81610580565b6020808252810161051d816105e0565b919050565b90815260200190565b60006001600160a01b03821661051d565b82818337506000910152565b6106b781610691565b81146106c85760008061035e610413565b5056fe476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c", + "deployedBytecode": "0x60806040526004361061003f5760003560e01c806326782247146100ea5780635c60da1b1461011e578063bb913f411461013c578063f851a44014610167575b600080600261004c610303565b906101000a90046001600160a01b03166001600160a01b0316600036604051610076929190610626565b600060405180830381855a610089610363565b50505050509150503d80600081146100bd576040513d603f01601f191681016040523d815291503d6000602084013e6100c2565b606091505b505090506040513d6000823e8180156100d9573d82f35b3d826100e3610413565b5050505050005b3480156100ff576000806100fc610413565b50505b50610108610185565b6040516101159190610633565b60405180910390f35b34801561013357600080610130610413565b50505b506101086101a4565b3480156101515760008061014e610413565b50505b50610165610160366004610523565b6101b0565b005b34801561017c57600080610179610413565b50505b506101086102fc565b60006001610191610303565b906101000a90046001600160a01b031681565b60006002610191610303565b6000806101bb610303565b906101000a90046001600160a01b03166001600160a01b03165a6101dd61047e565b6001600160a01b0316146102155760405162461bcd60e51b815260040161020390610673565b60405180910390610212610413565b50505b6001600160a01b03811661024d5760405162461bcd60e51b815260040161023b90610663565b6040518091039061024a610413565b50505b600080600261025a610303565b906101000a90046001600160a01b0316905081600260006101000a8161027e610303565b816001600160a01b0302191690836001600160a01b03160217906102a06104c4565b5050507fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a8160026000906102d2610303565b906101000a90046001600160a01b03166040516102f0929190610641565b60405180910390a15050565b6000806101915b6303daa959598160e01b8152836004820152602081602483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c528051935060005b604081101561035e57600082820152602001610347565b505050565b63ffe73914598160e01b8152836004820152846024820152606060448201528660648201526084810160005b888110156103a757808801518282015260200161038f565b506060828960a40184336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c52815160408301513d6000853e8b8b82606087013350600060045af15059845b8181101561040857600081526020016103f4565b50919b505050505050565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561044b578086015182820160400152602001610430565b506020828760640184336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c52505050565b6373509064598160e01b8152602081600483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c5280516000825293506020610347565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c52600081526020610347565b803561051d816106ae565b92915050565b60006020828403121561053e5760008061053b610413565b50505b600061054a8484610512565b949350505050565b61055b81610691565b82525050565b600061056d8385610683565b935061057a8385846106a2565b50500190565b600061058d604a83610688565b6000805160206106cc83398151915281527f656d656e746174696f6e3a20696e76616c696420696d706c656d656e746174696020820152696f6e206164647265737360b01b604082015260600192915050565b60006105ed603683610688565b6000805160206106cc833981519152815275656d656e746174696f6e3a2061646d696e206f6e6c7960501b602082015260400192915050565b600061054a828486610561565b6020810161051d8284610552565b6040810161064f8285610552565b61065c6020830184610552565b9392505050565b6020808252810161051d81610580565b6020808252810161051d816105e0565b919050565b90815260200190565b60006001600160a01b03821661051d565b82818337506000910152565b6106b781610691565b81146106c85760008061035e610413565b5056fe476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c", + "sourceMap": "101:2799:2:-;;;190:844;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;190:844:2;;;;;;;;;;;;;;;;;;;;;470:10;;;:::i;:::-;462:5;:18;:5;:18;;:::i;:::-;;-1:-1:-1;;;;;462:18:2;;;;;-1:-1:-1;;;;;462:18:2;;;;;;:::i;:::-;;;;491:474;502:15;658:9;729:5;796:13;871:12;945:18;519:445;;;;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;519:445:2;;;;;-1:-1:-1;;;49:4;25:18;;;61:17;-1:-1;;;;;182:15;;;179:29;;;160:49;;491:10:2;:474;:::i;:::-;976:35;995:15;-1:-1:-1;;;;;976:18:2;:35;:::i;:::-;1024:6;1016:5;:14;:5;:14;;:::i;:::-;;-1:-1:-1;;;;;1016:14:2;;;;;-1:-1:-1;;;;;1016:14:2;;;;;;:::i;:::-;;;;190:844;;;;;;;101:2799;;1965:285;2040:12;2054:23;2081:6;-1:-1:-1;;;;;2081:19:2;2101:4;2081:25;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;115:16;133:4;111:27;-1:-1;;107:43;100:51;;94:4;87:65;169:16;159:27;;64:16;-1:-1;225:16;222:1;215:4;208:12;;193:49;7:242;;16:31;36:4;31:9;;7:242;;2039:67:2;;;;2154:1;2145:7;2142:14;2139:2;;;2205:14;2198:4;2186:10;2182:21;2175:45;;:::i;:::-;;;2139:2;2125:119;;;;:::o;1218:452::-;1310:5;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1310:5:2;-1:-1:-1;;;;;1296:19:2;:10;;;:::i;:::-;-1:-1:-1;;;;;1296:19:2;;1288:86;;;;-1:-1:-1;;;1288:86:2;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1392:29:2;;1384:116;;;;-1:-1:-1;;;1384:116:2;;;;;;;;;;;;;;;;;:::i;:::-;;;;1511:25;;1539:14;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1539:14:2;1511:42;;1580:15;1563:14;;:32;;;;;:::i;:::-;;-1:-1:-1;;;;;1563:32:2;;;;;-1:-1:-1;;;;;1563:32:2;;;;;;:::i;:::-;;;;1611:52;1629:17;1648:14;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1648:14:2;1611:52;;;;;;;;;;;;;;;;1218:452;;:::o;101:2799::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;242:1;231:9;227:17;295:4;284:9;277:23;362:6;355:4;344:9;340:20;333:36;424:1;407:143;436:6;431:3;428:15;407:143;;;536:3;528:6;524:16;518:23;486:30;;;505:4;486:30;479:63;462:4;453:14;407:143;;;411:16;720:4;709:9;700:6;694:4;690:17;679:9;674:51;;;;;;;;;;;;;;;;;;;;;;;;;;0:821;;;101:2799:2:o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;222:2;211:9;208:1;197:9;192:33;;;;;;;;;;;;;;;;;;;;;;;;;;241:9;235:16;229:22;;491:1;474:100;503:4;498:3;495:13;474:100;;;568:1;547:19;;;540:30;527:4;518:14;474:100;;;478:16;0:577;;101:2799:2:o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;184:2;180:1;169:9;165:17;158:29;252:2;241:9;237:2;226:9;221:34;;;;;;;;;;;;;;;;;;;;;;;;;;271:9;265:16;521:1;570:30;;259:22;-1:-1;557:4;504:100;;101:2799:2;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;184:2;180:1;169:9;165:17;158:29;219:2;212:4;201:9;197:20;190:32;284:1;273:9;269:2;258:9;253:33;;;;;;;;;;;;;;;;;;;;;;;;;;530:1;579:30;;566:4;513:100;;101:2799:2;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;208:6;201:4;190:9;186:20;179:36;267:4;260;249:9;245:20;238:34;338:4;331;320:9;316:20;309:34;416:10;409:4;398:9;394:20;387:40;508:4;497:9;493:20;533:1;516:135;545:10;540:3;537:19;516:135;;;641:3;629:10;625:20;619:27;595:22;;;588:59;575:4;566:14;516:135;;;520:16;1050:4;1039:9;1026:10;1020:4;1016:21;1005:9;1000:55;;;;;;;;;;;;;;;;;;;;;;;;;;1100:9;1094:16;1209:4;1198:9;1194:20;1188:27;1450:16;1447:1;1436:9;1421:46;1535:9;1524;1497:25;1490:4;1479:9;1475:20;1470:75;;;;;;;1612:7;1639:9;1622:101;1659:10;1654:3;1651:19;1622:101;;;1714:4;1702:17;;1689:4;1680:14;1622:101;;;-1:-1;1881:10;;-1:-1;;;;;;101:2799:2:o;5:134:-1:-;;89:6;83:13;74:22;;101:33;128:5;101:33;;;68:71;;;;;146:134;;230:6;224:13;215:22;;242:33;269:5;242:33;;287:1083;;;;;;;;504:3;492:9;483:7;479:23;475:33;472:2;;;521:1;518;511:12;;:::i;:::-;;;472:2;556:1;573:64;629:7;609:9;573:64;;;563:74;;535:108;674:2;692:64;748:7;739:6;728:9;724:22;692:64;;;682:74;;653:109;793:2;811:64;867:7;858:6;847:9;843:22;811:64;;;801:74;;772:109;912:2;930:64;986:7;977:6;966:9;962:22;930:64;;;920:74;;891:109;1031:3;1050:64;1106:7;1097:6;1086:9;1082:22;1050:64;;;1040:74;;1010:110;1151:3;1170:64;1226:7;1217:6;1206:9;1202:22;1170:64;;;1160:74;;1130:110;1271:3;1290:64;1346:7;1337:6;1326:9;1322:22;1290:64;;;1280:74;;1250:110;466:904;;;;;;;;;;;1377:113;1460:24;1478:5;1460:24;;;1455:3;1448:37;1442:48;;;1497:356;;1625:38;1657:5;1625:38;;;1675:88;1756:6;1751:3;1675:88;;;1668:95;;1768:52;1813:6;1808:3;1801:4;1794:5;1790:16;1768:52;;;1832:16;;;;;1605:248;-1:-1;;1605:248;1861:448;;2021:67;2085:2;2080:3;2021:67;;;-1:-1;;;;;;;;;;;2101:55;;2190:34;2185:2;2176:12;;2169:56;-1:-1;;;2254:2;2245:12;;2238:34;2300:2;2291:12;;2007:302;-1:-1;;2007:302;2318:391;;2478:67;2542:2;2537:3;2478:67;;;-1:-1;;;;;;;;;;;2558:55;;2647:24;2642:2;2633:12;;2626:46;2700:2;2691:12;;2464:245;-1:-1;;2464:245;2717:113;2800:24;2818:5;2800:24;;2837:262;;2981:93;3070:3;3061:6;2981:93;;;2974:100;2962:137;-1:-1;;;2962:137;3106:324;3252:2;3237:18;;3266:71;3241:9;3310:6;3266:71;;;3348:72;3416:2;3405:9;3401:18;3392:6;3348:72;;3437:659;3667:3;3652:19;;3682:71;3656:9;3726:6;3682:71;;;3764:72;3832:2;3821:9;3817:18;3808:6;3764:72;;;3847;3915:2;3904:9;3900:18;3891:6;3847:72;;;3930;3998:2;3987:9;3983:18;3974:6;3930:72;;;4013:73;4081:3;4070:9;4066:19;4057:6;4013:73;;;3638:458;;;;;;;;;4103:407;4294:2;4308:47;;;4279:18;;4369:131;4279:18;4369:131;;4517:407;4708:2;4722:47;;;4693:18;;4783:131;4693:18;4783:131;;4931:121;;5024:5;5018:12;5008:22;4989:63;-1:-1;;4989:63;5060:144;5195:3;5173:31;-1:-1;5173:31;5213:163;5316:19;;;5365:4;5356:14;;5309:67;5384:91;;-1:-1;;;;;5544:54;;5446:24;5527:76;5610:72;5672:5;5655:27;5690:268;5755:1;5762:101;5776:6;5773:1;5770:13;5762:101;;;5852:1;5847:3;5843:11;5837:18;5824:11;;;5817:39;5798:2;5791:10;5762:101;;;5878:6;5875:1;5872:13;5869:2;;;-1:-1;;5943:1;5925:16;;5918:27;5739:219;5966:117;6035:24;6053:5;6035:24;;;6028:5;6025:35;6015:2;;6074:1;6071;6064:12;;:::i;6015:2::-;6009:74;;6090:117;6159:24;6177:5;6159:24;;6133:74;101:2799:2;;;;;;", + "deployedSourceMap": "101:2799:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2543:12;;2561:14;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2561:14:2;-1:-1:-1;;;;;2561:27:2;2589:8;;2561:37;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;115:16;133:4;111:27;-1:-1;;107:43;100:51;;94:4;87:65;169:16;159:27;;64:16;-1:-1;225:16;222:1;215:4;208:12;;193:49;7:242;;16:31;36:4;31:9;;7:242;;2542:56:2;;;2660:4;2654:11;2712:14;2709:1;2695:12;2680:47;2750:7;2772:47;;;;2865:14;2851:12;2844:36;2772:47;2802:14;2788:12;2781:36;;:::i;:::-;;;2743:139;2618:274;;101:2799;2187:27:3;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;2187:27:3;;;:::i;:::-;;;;;;;;;;;;;;;;2263:29;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;2263:29:3;;;:::i;1218:452:2:-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;-1:-1;1218:452:2;;;;;;;;:::i;:::-;;2104:20:3;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;2104:20:3;;;:::i;2187:27::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2187:27:3;;:::o;2263:29::-;;;;;:::i;1218:452:2:-;1310:5;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1310:5:2;-1:-1:-1;;;;;1296:19:2;:10;;;:::i;:::-;-1:-1:-1;;;;;1296:19:2;;1288:86;;;;-1:-1:-1;;;1288:86:2;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1392:29:2;;1384:116;;;;-1:-1:-1;;;1384:116:2;;;;;;;;;;;;;;;;;:::i;:::-;;;;1511:25;;1539:14;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1539:14:2;1511:42;;1580:15;1563:14;;:32;;;;;:::i;:::-;;-1:-1:-1;;;;;1563:32:2;;;;;-1:-1:-1;;;;;1563:32:2;;;;;;:::i;:::-;;;;1611:52;1629:17;1648:14;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1648:14:2;1611:52;;;;;;;;;;;;;;;;1218:452;;:::o;2104:20:3:-;;;;101:2799:2;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;184:2;180:1;169:9;165:17;158:29;252:2;241:9;237:2;226:9;221:34;;;;;;;;;;;;;;;;;;;;;;;;;;271:9;265:16;259:22;;521:1;504:100;533:4;528:3;525:13;504:100;;;598:1;577:19;;;570:30;557:4;548:14;504:100;;;508:16;0:607;;101:2799:2:o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;208:6;201:4;190:9;186:20;179:36;267:4;260;249:9;245:20;238:34;338:4;331;320:9;316:20;309:34;416:10;409:4;398:9;394:20;387:40;508:4;497:9;493:20;533:1;516:135;545:10;540:3;537:19;516:135;;;641:3;629:10;625:20;619:27;595:22;;;588:59;575:4;566:14;516:135;;;520:16;1050:4;1039:9;1026:10;1020:4;1016:21;1005:9;1000:55;;;;;;;;;;;;;;;;;;;;;;;;;;1100:9;1094:16;1209:4;1198:9;1194:20;1188:27;1450:16;1447:1;1436:9;1421:46;1535:9;1524;1497:25;1490:4;1479:9;1475:20;1470:75;;;;;;;1612:7;1639:9;1622:101;1659:10;1654:3;1651:19;1622:101;;;1714:4;1702:17;;1689:4;1680:14;1622:101;;;-1:-1;1881:10;;-1:-1;;;;;;101:2799:2:o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;242:1;231:9;227:17;295:4;284:9;277:23;362:6;355:4;344:9;340:20;333:36;424:1;407:143;436:6;431:3;428:15;407:143;;;536:3;528:6;524:16;518:23;486:30;;;505:4;486:30;479:63;462:4;453:14;407:143;;;411:16;720:4;709:9;700:6;694:4;690:17;679:9;674:51;;;;;;;;;;;;;;;;;;;;;;;;;;0:821;;;101:2799:2:o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;222:2;211:9;208:1;197:9;192:33;;;;;;;;;;;;;;;;;;;;;;;;;;241:9;235:16;491:1;540:30;;229:22;-1:-1;527:4;474:100;;101:2799:2;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;184:2;180:1;169:9;165:17;158:29;219:2;212:4;201:9;197:20;190:32;284:1;273:9;269:2;258:9;253:33;;;;;;;;;;;;;;;;;;;;;;;;;;530:1;579:30;;566:4;513:100;;5:130;72:20;;97:33;72:20;97:33;;;57:78;;;;;142:241;;246:2;234:9;225:7;221:23;217:32;214:2;;;262:1;259;252:12;;:::i;:::-;;;214:2;297:1;314:53;359:7;339:9;314:53;;;304:63;208:175;-1:-1;;;;208:175;390:113;473:24;491:5;473:24;;;468:3;461:37;455:48;;;533:310;;665:88;746:6;741:3;665:88;;;658:95;;765:43;801:6;796:3;789:5;765:43;;;-1:-1;;821:16;;651:192;852:448;;1012:67;1076:2;1071:3;1012:67;;;-1:-1;;;;;;;;;;;1092:55;;1181:34;1176:2;1167:12;;1160:56;-1:-1;;;1245:2;1236:12;;1229:34;1291:2;1282:12;;998:302;-1:-1;;998:302;1309:391;;1469:67;1533:2;1528:3;1469:67;;;-1:-1;;;;;;;;;;;1549:55;;-1:-1;;;1633:2;1624:12;;1617:46;1691:2;1682:12;;1455:245;-1:-1;;1455:245;1708:282;;1862:103;1961:3;1952:6;1944;1862:103;;1997:213;2115:2;2100:18;;2129:71;2104:9;2173:6;2129:71;;2217:324;2363:2;2348:18;;2377:71;2352:9;2421:6;2377:71;;;2459:72;2527:2;2516:9;2512:18;2503:6;2459:72;;;2334:207;;;;;;2548:407;2739:2;2753:47;;;2724:18;;2814:131;2724:18;2814:131;;2962:407;3153:2;3167:47;;;3138:18;;3228:131;3138:18;3228:131;;3377:144;3512:3;3490:31;-1:-1;3490:31;3530:163;3633:19;;;3682:4;3673:14;;3626:67;3701:91;;-1:-1;;;;;3861:54;;3763:24;3844:76;3928:145;4009:6;4004:3;3999;3986:30;-1:-1;4065:1;4047:16;;4040:27;3979:94;4081:117;4150:24;4168:5;4150:24;;;4143:5;4140:35;4130:2;;4189:1;4186;4179:12;;:::i;4130:2::-;4124:74;", + "source": "pragma solidity ^0.5.16;\npragma experimental ABIEncoderV2;\n\nimport \"./GovernorBravoInterfaces.sol\";\n\ncontract GovernorBravoDelegator is GovernorBravoDelegatorStorage, GovernorBravoEvents {\n\tconstructor(\n\t\t\taddress timelock_,\n\t\t\taddress comp_,\n\t\t\taddress admin_,\n\t address implementation_,\n\t uint votingPeriod_,\n\t uint votingDelay_,\n uint proposalThreshold_) public {\n\n // Admin set to msg.sender for initialization\n admin = msg.sender;\n\n delegateTo(implementation_, abi.encodeWithSignature(\"initialize(address,address,uint256,uint256,uint256)\",\n timelock_,\n comp_,\n votingPeriod_,\n votingDelay_,\n proposalThreshold_));\n\n _setImplementation(implementation_);\n\n\t\tadmin = admin_;\n\t}\n\n\n\t/**\n * @notice Called by the admin to update the implementation of the delegator\n * @param implementation_ The address of the new implementation for delegation\n */\n function _setImplementation(address implementation_) public {\n require(msg.sender == admin, \"GovernorBravoDelegator::_setImplementation: admin only\");\n require(implementation_ != address(0), \"GovernorBravoDelegator::_setImplementation: invalid implementation address\");\n\n address oldImplementation = implementation;\n implementation = implementation_;\n\n emit NewImplementation(oldImplementation, implementation);\n }\n\n /**\n * @notice Internal method to delegate execution to another contract\n * @dev It returns to the external caller whatever the implementation returns or forwards reverts\n * @param callee The contract to delegatecall\n * @param data The raw data to delegatecall\n */\n function delegateTo(address callee, bytes memory data) internal {\n (bool success, bytes memory returnData) = callee.delegatecall(data);\n assembly {\n if eq(success, 0) {\n revert(add(returnData, 0x20), returndatasize)\n }\n }\n }\n\n\t/**\n * @dev Delegates execution to an implementation contract.\n * It returns to the external caller whatever the implementation returns\n * or forwards reverts.\n */\n function () external payable {\n // delegate all other functions to current implementation\n (bool success, ) = implementation.delegatecall(msg.data);\n\n assembly {\n let free_mem_ptr := mload(0x40)\n returndatacopy(free_mem_ptr, 0, returndatasize)\n\n switch success\n case 0 { revert(free_mem_ptr, returndatasize) }\n default { return(free_mem_ptr, returndatasize) }\n }\n }\n}", + "sourcePath": "/Users/janliphardt/Documents/GitHub/optimism/omgx_examples/compound-simple/contracts/GovernorBravoDelegator.sol", + "ast": { + "absolutePath": "project:/contracts/GovernorBravoDelegator.sol", + "exportedSymbols": { + "GovernorBravoDelegator": [ + 2387 + ] + }, + "id": 2388, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2269, + "literals": [ + "solidity", + "^", + "0.5", + ".16" + ], + "nodeType": "PragmaDirective", + "src": "0:24:2" + }, + { + "id": 2270, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "25:33:2" + }, + { + "absolutePath": "project:/contracts/GovernorBravoInterfaces.sol", + "file": "./GovernorBravoInterfaces.sol", + "id": 2271, + "nodeType": "ImportDirective", + "scope": 2388, + "sourceUnit": 2637, + "src": "60:39:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2272, + "name": "GovernorBravoDelegatorStorage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2484, + "src": "136:29:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorBravoDelegatorStorage_$2484", + "typeString": "contract GovernorBravoDelegatorStorage" + } + }, + "id": 2273, + "nodeType": "InheritanceSpecifier", + "src": "136:29:2" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2274, + "name": "GovernorBravoEvents", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2477, + "src": "167:19:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorBravoEvents_$2477", + "typeString": "contract GovernorBravoEvents" + } + }, + "id": 2275, + "nodeType": "InheritanceSpecifier", + "src": "167:19:2" + } + ], + "contractDependencies": [ + 2477, + 2484 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2387, + "linearizedBaseContracts": [ + 2387, + 2477, + 2484 + ], + "name": "GovernorBravoDelegator", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2318, + "nodeType": "Block", + "src": "397:637:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2292, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2479, + "src": "462:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2293, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "470:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "470:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "462:18:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2296, + "nodeType": "ExpressionStatement", + "src": "462:18:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2298, + "name": "implementation_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2283, + "src": "502:15:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "696e697469616c697a6528616464726573732c616464726573732c75696e743235362c75696e743235362c75696e7432353629", + "id": 2301, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "543:53:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d13f90b4a70df481dfe905edf398daad42991d461203fabcffaaa135dbbd95e6", + "typeString": "literal_string \"initialize(address,address,uint256,uint256,uint256)\"" + }, + "value": "initialize(address,address,uint256,uint256,uint256)" + }, + { + "argumentTypes": null, + "id": 2302, + "name": "timelock_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2277, + "src": "658:9:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2303, + "name": "comp_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "729:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2304, + "name": "votingPeriod_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2285, + "src": "796:13:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2305, + "name": "votingDelay_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2287, + "src": "871:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2306, + "name": "proposalThreshold_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2289, + "src": "945:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_d13f90b4a70df481dfe905edf398daad42991d461203fabcffaaa135dbbd95e6", + "typeString": "literal_string \"initialize(address,address,uint256,uint256,uint256)\"" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2299, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3342, + "src": "519:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "519:23:2", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (string memory) pure returns (bytes memory)" + } + }, + "id": 2307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "519:445:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2297, + "name": "delegateTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2373, + "src": "491:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,bytes memory)" + } + }, + "id": 2308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "491:474:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2309, + "nodeType": "ExpressionStatement", + "src": "491:474:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2311, + "name": "implementation_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2283, + "src": "995:15:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2310, + "name": "_setImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2355, + "src": "976:18:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "976:35:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2313, + "nodeType": "ExpressionStatement", + "src": "976:35:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 2316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2314, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2479, + "src": "1016:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2315, + "name": "admin_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2281, + "src": "1024:6:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1016:14:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2317, + "nodeType": "ExpressionStatement", + "src": "1016:14:2" + } + ] + }, + "documentation": null, + "id": 2319, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2277, + "name": "timelock_", + "nodeType": "VariableDeclaration", + "scope": 2319, + "src": "206:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2276, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "206:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2279, + "name": "comp_", + "nodeType": "VariableDeclaration", + "scope": 2319, + "src": "228:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2278, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "228:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2281, + "name": "admin_", + "nodeType": "VariableDeclaration", + "scope": 2319, + "src": "246:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2280, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "246:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2283, + "name": "implementation_", + "nodeType": "VariableDeclaration", + "scope": 2319, + "src": "271:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2282, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "271:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2285, + "name": "votingPeriod_", + "nodeType": "VariableDeclaration", + "scope": 2319, + "src": "305:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2284, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "305:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2287, + "name": "votingDelay_", + "nodeType": "VariableDeclaration", + "scope": 2319, + "src": "334:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2286, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "334:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2289, + "name": "proposalThreshold_", + "nodeType": "VariableDeclaration", + "scope": 2319, + "src": "365:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2288, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "365:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "201:188:2" + }, + "returnParameters": { + "id": 2291, + "nodeType": "ParameterList", + "parameters": [], + "src": "397:0:2" + }, + "scope": 2387, + "src": "190:844:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2354, + "nodeType": "Block", + "src": "1278:392:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2325, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "1296:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1296:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2327, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2479, + "src": "1310:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1296:19:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c656d656e746174696f6e3a2061646d696e206f6e6c79", + "id": 2329, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1317:56:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_67e0cfb19eeb696ffa2478995cd84545be2598121b514835c4a36bdd58be17b5", + "typeString": "literal_string \"GovernorBravoDelegator::_setImplementation: admin only\"" + }, + "value": "GovernorBravoDelegator::_setImplementation: admin only" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_67e0cfb19eeb696ffa2478995cd84545be2598121b514835c4a36bdd58be17b5", + "typeString": "literal_string \"GovernorBravoDelegator::_setImplementation: admin only\"" + } + ], + "id": 2324, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "1288:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1288:86:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2331, + "nodeType": "ExpressionStatement", + "src": "1288:86:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2333, + "name": "implementation_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2321, + "src": "1392:15:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2335, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1419:1:2", + "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": 2334, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1411:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2336, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1411:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1392:29:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c656d656e746174696f6e3a20696e76616c696420696d706c656d656e746174696f6e2061646472657373", + "id": 2338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1423:76:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_561af24827b00b724adb303d81d460221f68af67b410ff78faf6902bb014b94d", + "typeString": "literal_string \"GovernorBravoDelegator::_setImplementation: invalid implementation address\"" + }, + "value": "GovernorBravoDelegator::_setImplementation: invalid implementation address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_561af24827b00b724adb303d81d460221f68af67b410ff78faf6902bb014b94d", + "typeString": "literal_string \"GovernorBravoDelegator::_setImplementation: invalid implementation address\"" + } + ], + "id": 2332, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "1384:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1384:116:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2340, + "nodeType": "ExpressionStatement", + "src": "1384:116:2" + }, + { + "assignments": [ + 2342 + ], + "declarations": [ + { + "constant": false, + "id": 2342, + "name": "oldImplementation", + "nodeType": "VariableDeclaration", + "scope": 2354, + "src": "1511:25:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2341, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1511:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2344, + "initialValue": { + "argumentTypes": null, + "id": 2343, + "name": "implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2483, + "src": "1539:14:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1511:42:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 2347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2345, + "name": "implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2483, + "src": "1563:14:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2346, + "name": "implementation_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2321, + "src": "1580:15:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1563:32:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2348, + "nodeType": "ExpressionStatement", + "src": "1563:32:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2350, + "name": "oldImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2342, + "src": "1629:17:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2351, + "name": "implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2483, + "src": "1648:14:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2349, + "name": "NewImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2458, + "src": "1611:17:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 2352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1611:52:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2353, + "nodeType": "EmitStatement", + "src": "1606:57:2" + } + ] + }, + "documentation": "@notice Called by the admin to update the implementation of the delegator\n@param implementation_ The address of the new implementation for delegation", + "id": 2355, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setImplementation", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2322, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2321, + "name": "implementation_", + "nodeType": "VariableDeclaration", + "scope": 2355, + "src": "1246:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2320, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1246:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1245:25:2" + }, + "returnParameters": { + "id": 2323, + "nodeType": "ParameterList", + "parameters": [], + "src": "1278:0:2" + }, + "scope": 2387, + "src": "1218:452:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2372, + "nodeType": "Block", + "src": "2029:221:2", + "statements": [ + { + "assignments": [ + 2363, + 2365 + ], + "declarations": [ + { + "constant": false, + "id": 2363, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 2372, + "src": "2040:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2362, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2040:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2365, + "name": "returnData", + "nodeType": "VariableDeclaration", + "scope": 2372, + "src": "2054:23:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2364, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2054:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2370, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2368, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2359, + "src": "2101:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 2366, + "name": "callee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2357, + "src": "2081:6:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2081:19:2", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2081:25:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2039:67:2" + }, + { + "externalReferences": [ + { + "success": { + "declaration": 2363, + "isOffset": false, + "isSlot": false, + "src": "2145:7:2", + "valueSize": 1 + } + }, + { + "returnData": { + "declaration": 2365, + "isOffset": false, + "isSlot": false, + "src": "2186:10:2", + "valueSize": 1 + } + } + ], + "id": 2371, + "nodeType": "InlineAssembly", + "operations": "{\n if eq(success, 0)\n {\n revert(add(returnData, 0x20), returndatasize())\n }\n}", + "src": "2116:128:2" + } + ] + }, + "documentation": "@notice Internal method to delegate execution to another contract\n@dev It returns to the external caller whatever the implementation returns or forwards reverts\n@param callee The contract to delegatecall\n@param data The raw data to delegatecall", + "id": 2373, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "delegateTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2360, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2357, + "name": "callee", + "nodeType": "VariableDeclaration", + "scope": 2373, + "src": "1985:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2356, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1985:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2359, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2373, + "src": "2001:17:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2358, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2001:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1984:35:2" + }, + "returnParameters": { + "id": 2361, + "nodeType": "ParameterList", + "parameters": [], + "src": "2029:0:2" + }, + "scope": 2387, + "src": "1965:285:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2385, + "nodeType": "Block", + "src": "2466:432:2", + "statements": [ + { + "assignments": [ + 2377, + null + ], + "declarations": [ + { + "constant": false, + "id": 2377, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 2385, + "src": "2543:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2376, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2543:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 2383, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2380, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "2589:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2589:8:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "id": 2378, + "name": "implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2483, + "src": "2561:14:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2561:27:2", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 2382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2561:37:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2542:56:2" + }, + { + "externalReferences": [ + { + "success": { + "declaration": 2377, + "isOffset": false, + "isSlot": false, + "src": "2750:7:2", + "valueSize": 1 + } + } + ], + "id": 2384, + "nodeType": "InlineAssembly", + "operations": "{\n let free_mem_ptr := mload(0x40)\n returndatacopy(free_mem_ptr, 0, returndatasize())\n switch success\n case 0 {\n revert(free_mem_ptr, returndatasize())\n }\n default {\n return(free_mem_ptr, returndatasize())\n }\n}", + "src": "2609:283:2" + } + ] + }, + "documentation": "@dev Delegates execution to an implementation contract.\nIt returns to the external caller whatever the implementation returns\nor forwards reverts.", + "id": 2386, + "implemented": true, + "kind": "fallback", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2374, + "nodeType": "ParameterList", + "parameters": [], + "src": "2446:2:2" + }, + "returnParameters": { + "id": 2375, + "nodeType": "ParameterList", + "parameters": [], + "src": "2466:0:2" + }, + "scope": 2387, + "src": "2437:461:2", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2388, + "src": "101:2799:2" + } + ], + "src": "0:2900:2" + }, + "legacyAST": { + "attributes": { + "absolutePath": "project:/contracts/GovernorBravoDelegator.sol", + "exportedSymbols": { + "GovernorBravoDelegator": [ + 2387 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.5", + ".16" + ] + }, + "id": 2269, + "name": "PragmaDirective", + "src": "0:24:2" + }, + { + "attributes": { + "literals": [ + "experimental", + "ABIEncoderV2" + ] + }, + "id": 2270, + "name": "PragmaDirective", + "src": "25:33:2" + }, + { + "attributes": { + "SourceUnit": 2637, + "absolutePath": "project:/contracts/GovernorBravoInterfaces.sol", + "file": "./GovernorBravoInterfaces.sol", + "scope": 2388, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 2271, + "name": "ImportDirective", + "src": "60:39:2" + }, + { + "attributes": { + "contractDependencies": [ + 2477, + 2484 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2387, + 2477, + 2484 + ], + "name": "GovernorBravoDelegator", + "scope": 2388 + }, + "children": [ + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "GovernorBravoDelegatorStorage", + "referencedDeclaration": 2484, + "type": "contract GovernorBravoDelegatorStorage" + }, + "id": 2272, + "name": "UserDefinedTypeName", + "src": "136:29:2" + } + ], + "id": 2273, + "name": "InheritanceSpecifier", + "src": "136:29:2" + }, + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "GovernorBravoEvents", + "referencedDeclaration": 2477, + "type": "contract GovernorBravoEvents" + }, + "id": 2274, + "name": "UserDefinedTypeName", + "src": "167:19:2" + } + ], + "id": 2275, + "name": "InheritanceSpecifier", + "src": "167:19:2" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 2387, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "timelock_", + "scope": 2319, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2276, + "name": "ElementaryTypeName", + "src": "206:7:2" + } + ], + "id": 2277, + "name": "VariableDeclaration", + "src": "206:17:2" + }, + { + "attributes": { + "constant": false, + "name": "comp_", + "scope": 2319, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2278, + "name": "ElementaryTypeName", + "src": "228:7:2" + } + ], + "id": 2279, + "name": "VariableDeclaration", + "src": "228:13:2" + }, + { + "attributes": { + "constant": false, + "name": "admin_", + "scope": 2319, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2280, + "name": "ElementaryTypeName", + "src": "246:7:2" + } + ], + "id": 2281, + "name": "VariableDeclaration", + "src": "246:14:2" + }, + { + "attributes": { + "constant": false, + "name": "implementation_", + "scope": 2319, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2282, + "name": "ElementaryTypeName", + "src": "271:7:2" + } + ], + "id": 2283, + "name": "VariableDeclaration", + "src": "271:23:2" + }, + { + "attributes": { + "constant": false, + "name": "votingPeriod_", + "scope": 2319, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2284, + "name": "ElementaryTypeName", + "src": "305:4:2" + } + ], + "id": 2285, + "name": "VariableDeclaration", + "src": "305:18:2" + }, + { + "attributes": { + "constant": false, + "name": "votingDelay_", + "scope": 2319, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2286, + "name": "ElementaryTypeName", + "src": "334:4:2" + } + ], + "id": 2287, + "name": "VariableDeclaration", + "src": "334:17:2" + }, + { + "attributes": { + "constant": false, + "name": "proposalThreshold_", + "scope": 2319, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2288, + "name": "ElementaryTypeName", + "src": "365:4:2" + } + ], + "id": 2289, + "name": "VariableDeclaration", + "src": "365:23:2" + } + ], + "id": 2290, + "name": "ParameterList", + "src": "201:188:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2291, + "name": "ParameterList", + "src": "397:0:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2479, + "type": "address", + "value": "admin" + }, + "id": 2292, + "name": "Identifier", + "src": "462:5:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 2293, + "name": "Identifier", + "src": "470:3:2" + } + ], + "id": 2294, + "name": "MemberAccess", + "src": "470:10:2" + } + ], + "id": 2295, + "name": "Assignment", + "src": "462:18:2" + } + ], + "id": 2296, + "name": "ExpressionStatement", + "src": "462:18:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2373, + "type": "function (address,bytes memory)", + "value": "delegateTo" + }, + "id": 2297, + "name": "Identifier", + "src": "491:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2283, + "type": "address", + "value": "implementation_" + }, + "id": 2298, + "name": "Identifier", + "src": "502:15:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_d13f90b4a70df481dfe905edf398daad42991d461203fabcffaaa135dbbd95e6", + "typeString": "literal_string \"initialize(address,address,uint256,uint256,uint256)\"" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodeWithSignature", + "referencedDeclaration": null, + "type": "function (string memory) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3342, + "type": "abi", + "value": "abi" + }, + "id": 2299, + "name": "Identifier", + "src": "519:3:2" + } + ], + "id": 2300, + "name": "MemberAccess", + "src": "519:23:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "696e697469616c697a6528616464726573732c616464726573732c75696e743235362c75696e743235362c75696e7432353629", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"initialize(address,address,uint256,uint256,uint256)\"", + "value": "initialize(address,address,uint256,uint256,uint256)" + }, + "id": 2301, + "name": "Literal", + "src": "543:53:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2277, + "type": "address", + "value": "timelock_" + }, + "id": 2302, + "name": "Identifier", + "src": "658:9:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2279, + "type": "address", + "value": "comp_" + }, + "id": 2303, + "name": "Identifier", + "src": "729:5:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2285, + "type": "uint256", + "value": "votingPeriod_" + }, + "id": 2304, + "name": "Identifier", + "src": "796:13:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2287, + "type": "uint256", + "value": "votingDelay_" + }, + "id": 2305, + "name": "Identifier", + "src": "871:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2289, + "type": "uint256", + "value": "proposalThreshold_" + }, + "id": 2306, + "name": "Identifier", + "src": "945:18:2" + } + ], + "id": 2307, + "name": "FunctionCall", + "src": "519:445:2" + } + ], + "id": 2308, + "name": "FunctionCall", + "src": "491:474:2" + } + ], + "id": 2309, + "name": "ExpressionStatement", + "src": "491:474:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2355, + "type": "function (address)", + "value": "_setImplementation" + }, + "id": 2310, + "name": "Identifier", + "src": "976:18:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2283, + "type": "address", + "value": "implementation_" + }, + "id": 2311, + "name": "Identifier", + "src": "995:15:2" + } + ], + "id": 2312, + "name": "FunctionCall", + "src": "976:35:2" + } + ], + "id": 2313, + "name": "ExpressionStatement", + "src": "976:35:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2479, + "type": "address", + "value": "admin" + }, + "id": 2314, + "name": "Identifier", + "src": "1016:5:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2281, + "type": "address", + "value": "admin_" + }, + "id": 2315, + "name": "Identifier", + "src": "1024:6:2" + } + ], + "id": 2316, + "name": "Assignment", + "src": "1016:14:2" + } + ], + "id": 2317, + "name": "ExpressionStatement", + "src": "1016:14:2" + } + ], + "id": 2318, + "name": "Block", + "src": "397:637:2" + } + ], + "id": 2319, + "name": "FunctionDefinition", + "src": "190:844:2" + }, + { + "attributes": { + "documentation": "@notice Called by the admin to update the implementation of the delegator\n@param implementation_ The address of the new implementation for delegation", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setImplementation", + "scope": 2387, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "implementation_", + "scope": 2355, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2320, + "name": "ElementaryTypeName", + "src": "1246:7:2" + } + ], + "id": 2321, + "name": "VariableDeclaration", + "src": "1246:23:2" + } + ], + "id": 2322, + "name": "ParameterList", + "src": "1245:25:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2323, + "name": "ParameterList", + "src": "1278:0:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_67e0cfb19eeb696ffa2478995cd84545be2598121b514835c4a36bdd58be17b5", + "typeString": "literal_string \"GovernorBravoDelegator::_setImplementation: admin only\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2324, + "name": "Identifier", + "src": "1288:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 2325, + "name": "Identifier", + "src": "1296:3:2" + } + ], + "id": 2326, + "name": "MemberAccess", + "src": "1296:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2479, + "type": "address", + "value": "admin" + }, + "id": 2327, + "name": "Identifier", + "src": "1310:5:2" + } + ], + "id": 2328, + "name": "BinaryOperation", + "src": "1296:19:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c656d656e746174696f6e3a2061646d696e206f6e6c79", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravoDelegator::_setImplementation: admin only\"", + "value": "GovernorBravoDelegator::_setImplementation: admin only" + }, + "id": 2329, + "name": "Literal", + "src": "1317:56:2" + } + ], + "id": 2330, + "name": "FunctionCall", + "src": "1288:86:2" + } + ], + "id": 2331, + "name": "ExpressionStatement", + "src": "1288:86:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_561af24827b00b724adb303d81d460221f68af67b410ff78faf6902bb014b94d", + "typeString": "literal_string \"GovernorBravoDelegator::_setImplementation: invalid implementation address\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2332, + "name": "Identifier", + "src": "1384:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2321, + "type": "address", + "value": "implementation_" + }, + "id": 2333, + "name": "Identifier", + "src": "1392:15:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 2334, + "name": "ElementaryTypeNameExpression", + "src": "1411:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2335, + "name": "Literal", + "src": "1419:1:2" + } + ], + "id": 2336, + "name": "FunctionCall", + "src": "1411:10:2" + } + ], + "id": 2337, + "name": "BinaryOperation", + "src": "1392:29:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c656d656e746174696f6e3a20696e76616c696420696d706c656d656e746174696f6e2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"GovernorBravoDelegator::_setImplementation: invalid implementation address\"", + "value": "GovernorBravoDelegator::_setImplementation: invalid implementation address" + }, + "id": 2338, + "name": "Literal", + "src": "1423:76:2" + } + ], + "id": 2339, + "name": "FunctionCall", + "src": "1384:116:2" + } + ], + "id": 2340, + "name": "ExpressionStatement", + "src": "1384:116:2" + }, + { + "attributes": { + "assignments": [ + 2342 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "oldImplementation", + "scope": 2354, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2341, + "name": "ElementaryTypeName", + "src": "1511:7:2" + } + ], + "id": 2342, + "name": "VariableDeclaration", + "src": "1511:25:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2483, + "type": "address", + "value": "implementation" + }, + "id": 2343, + "name": "Identifier", + "src": "1539:14:2" + } + ], + "id": 2344, + "name": "VariableDeclarationStatement", + "src": "1511:42:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2483, + "type": "address", + "value": "implementation" + }, + "id": 2345, + "name": "Identifier", + "src": "1563:14:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2321, + "type": "address", + "value": "implementation_" + }, + "id": 2346, + "name": "Identifier", + "src": "1580:15:2" + } + ], + "id": 2347, + "name": "Assignment", + "src": "1563:32:2" + } + ], + "id": 2348, + "name": "ExpressionStatement", + "src": "1563:32:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2458, + "type": "function (address,address)", + "value": "NewImplementation" + }, + "id": 2349, + "name": "Identifier", + "src": "1611:17:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2342, + "type": "address", + "value": "oldImplementation" + }, + "id": 2350, + "name": "Identifier", + "src": "1629:17:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2483, + "type": "address", + "value": "implementation" + }, + "id": 2351, + "name": "Identifier", + "src": "1648:14:2" + } + ], + "id": 2352, + "name": "FunctionCall", + "src": "1611:52:2" + } + ], + "id": 2353, + "name": "EmitStatement", + "src": "1606:57:2" + } + ], + "id": 2354, + "name": "Block", + "src": "1278:392:2" + } + ], + "id": 2355, + "name": "FunctionDefinition", + "src": "1218:452:2" + }, + { + "attributes": { + "documentation": "@notice Internal method to delegate execution to another contract\n@dev It returns to the external caller whatever the implementation returns or forwards reverts\n@param callee The contract to delegatecall\n@param data The raw data to delegatecall", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "delegateTo", + "scope": 2387, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "callee", + "scope": 2373, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2356, + "name": "ElementaryTypeName", + "src": "1985:7:2" + } + ], + "id": 2357, + "name": "VariableDeclaration", + "src": "1985:14:2" + }, + { + "attributes": { + "constant": false, + "name": "data", + "scope": 2373, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2358, + "name": "ElementaryTypeName", + "src": "2001:5:2" + } + ], + "id": 2359, + "name": "VariableDeclaration", + "src": "2001:17:2" + } + ], + "id": 2360, + "name": "ParameterList", + "src": "1984:35:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2361, + "name": "ParameterList", + "src": "2029:0:2" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2363, + 2365 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "success", + "scope": 2372, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2362, + "name": "ElementaryTypeName", + "src": "2040:4:2" + } + ], + "id": 2363, + "name": "VariableDeclaration", + "src": "2040:12:2" + }, + { + "attributes": { + "constant": false, + "name": "returnData", + "scope": 2372, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2364, + "name": "ElementaryTypeName", + "src": "2054:5:2" + } + ], + "id": 2365, + "name": "VariableDeclaration", + "src": "2054:23:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "delegatecall", + "referencedDeclaration": null, + "type": "function (bytes memory) returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2357, + "type": "address", + "value": "callee" + }, + "id": 2366, + "name": "Identifier", + "src": "2081:6:2" + } + ], + "id": 2367, + "name": "MemberAccess", + "src": "2081:19:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2359, + "type": "bytes memory", + "value": "data" + }, + "id": 2368, + "name": "Identifier", + "src": "2101:4:2" + } + ], + "id": 2369, + "name": "FunctionCall", + "src": "2081:25:2" + } + ], + "id": 2370, + "name": "VariableDeclarationStatement", + "src": "2039:67:2" + }, + { + "attributes": { + "externalReferences": [ + { + "success": { + "declaration": 2363, + "isOffset": false, + "isSlot": false, + "src": "2145:7:2", + "valueSize": 1 + } + }, + { + "returnData": { + "declaration": 2365, + "isOffset": false, + "isSlot": false, + "src": "2186:10:2", + "valueSize": 1 + } + } + ], + "operations": "{\n if eq(success, 0)\n {\n revert(add(returnData, 0x20), returndatasize())\n }\n}" + }, + "children": [], + "id": 2371, + "name": "InlineAssembly", + "src": "2116:128:2" + } + ], + "id": 2372, + "name": "Block", + "src": "2029:221:2" + } + ], + "id": 2373, + "name": "FunctionDefinition", + "src": "1965:285:2" + }, + { + "attributes": { + "documentation": "@dev Delegates execution to an implementation contract.\nIt returns to the external caller whatever the implementation returns\nor forwards reverts.", + "implemented": true, + "isConstructor": false, + "kind": "fallback", + "modifiers": [ + null + ], + "name": "", + "scope": 2387, + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2374, + "name": "ParameterList", + "src": "2446:2:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2375, + "name": "ParameterList", + "src": "2466:0:2" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2377, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "success", + "scope": 2385, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2376, + "name": "ElementaryTypeName", + "src": "2543:4:2" + } + ], + "id": 2377, + "name": "VariableDeclaration", + "src": "2543:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "delegatecall", + "referencedDeclaration": null, + "type": "function (bytes memory) returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2483, + "type": "address", + "value": "implementation" + }, + "id": 2378, + "name": "Identifier", + "src": "2561:14:2" + } + ], + "id": 2379, + "name": "MemberAccess", + "src": "2561:27:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "data", + "referencedDeclaration": null, + "type": "bytes calldata" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 2380, + "name": "Identifier", + "src": "2589:3:2" + } + ], + "id": 2381, + "name": "MemberAccess", + "src": "2589:8:2" + } + ], + "id": 2382, + "name": "FunctionCall", + "src": "2561:37:2" + } + ], + "id": 2383, + "name": "VariableDeclarationStatement", + "src": "2542:56:2" + }, + { + "attributes": { + "externalReferences": [ + { + "success": { + "declaration": 2377, + "isOffset": false, + "isSlot": false, + "src": "2750:7:2", + "valueSize": 1 + } + } + ], + "operations": "{\n let free_mem_ptr := mload(0x40)\n returndatacopy(free_mem_ptr, 0, returndatasize())\n switch success\n case 0 {\n revert(free_mem_ptr, returndatasize())\n }\n default {\n return(free_mem_ptr, returndatasize())\n }\n}" + }, + "children": [], + "id": 2384, + "name": "InlineAssembly", + "src": "2609:283:2" + } + ], + "id": 2385, + "name": "Block", + "src": "2466:432:2" + } + ], + "id": 2386, + "name": "FunctionDefinition", + "src": "2437:461:2" + } + ], + "id": 2387, + "name": "ContractDefinition", + "src": "101:2799:2" + } + ], + "id": 2388, + "name": "SourceUnit", + "src": "0:2900:2" + }, + "compiler": { + "name": "solc", + "version": "0.5.16" + }, + "networks": { + "28": { + "events": {}, + "links": {}, + "address": "0xE37eb7AF587e52C45E20BA18D2d220ee1E8522B7", + "transactionHash": "0x9ec2d11ed5bb4c92c34767868f4fda6ac259888a01c28f8ecb4b7f80ac01981e" + } + }, + "schemaVersion": "3.4.3", + "updatedAt": "2021-09-05T22:07:11.038Z", + "networkType": "ethereum", + "devdoc": { + "methods": { + "_setImplementation(address)": { + "params": { + "implementation_": "The address of the new implementation for delegation" + } + } + } + }, + "userdoc": { + "methods": { + "_setImplementation(address)": { + "notice": "Called by the admin to update the implementation of the delegator" + } + } + } +} \ No newline at end of file diff --git a/omgx_examples/compound-simple/build-ovm/GovernorBravoDelegatorStorage.json b/omgx_examples/compound-simple/build-ovm/GovernorBravoDelegatorStorage.json new file mode 100644 index 000000000000..9772c1d91928 --- /dev/null +++ b/omgx_examples/compound-simple/build-ovm/GovernorBravoDelegatorStorage.json @@ -0,0 +1,6258 @@ +{ + "contractName": "GovernorBravoDelegatorStorage", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "admin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "implementation", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "pendingAdmin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.16-develop.2020.11.10+ovm+commit.00cdd204\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/GovernorBravoInterfaces.sol\":\"GovernorBravoDelegatorStorage\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"project:/contracts/GovernorBravoInterfaces.sol\":{\"keccak256\":\"0x74cb8a82fef2906cbee7c96d7aa72e46b01df83859704a35a4a63d3aa9493718\",\"urls\":[\"bzz-raw://82b0c9f82c46927ea7128afc44921d60af23461da7f6d0c29484b5b92ad2b87a\",\"dweb:/ipfs/QmbNHAYEhhXzmdsmfMPLuGAGceq9oHD9AaDmyrnVaXPrhh\"]}},\"version\":1}", + "bytecode": "0x60806040523480156100195760008061001661001f565b50505b5061008a565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561005757808601518282016040015260200161003c565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6101bb806100996000396000f3fe6080604052348015610019576000806100166100bc565b50505b506004361061004a5760003560e01c806326782247146100585780635c60da1b14610076578063f851a4401461007e575b6000806100556100bc565b50505b610060610086565b60405161006d9190610196565b60405180910390f35b6100606100a5565b6100606100b1565b60006001610092610127565b906101000a90046001600160a01b031681565b60006002610092610127565b600080610092610127565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156100f45780860151828201604001526020016100d9565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b60408110156101825760008282015260200161016b565b505050565b610190816101aa565b82525050565b602081016101a48284610187565b92915050565b60006001600160a01b0382166101a456", + "deployedBytecode": "0x6080604052348015610019576000806100166100bc565b50505b506004361061004a5760003560e01c806326782247146100585780635c60da1b14610076578063f851a4401461007e575b6000806100556100bc565b50505b610060610086565b60405161006d9190610196565b60405180910390f35b6100606100a5565b6100606100b1565b60006001610092610127565b906101000a90046001600160a01b031681565b60006002610092610127565b600080610092610127565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156100f45780860151828201604001526020016100d9565b506020828760640184336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c52505050565b6303daa959598160e01b8152836004820152602081602483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c528051935060005b60408110156101825760008282015260200161016b565b505050565b610190816101aa565b82525050565b602081016101a48284610187565b92915050565b60006001600160a01b0382166101a456", + "sourceMap": "2011:284:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;2011:284:3;;;;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;242:1;231:9;227:17;295:4;284:9;277:23;362:6;355:4;344:9;340:20;333:36;424:1;407:143;436:6;431:3;428:15;407:143;;;536:3;528:6;524:16;518:23;486:30;;;505:4;486:30;479:63;462:4;453:14;407:143;;;411:16;720:4;709:9;700:6;694:4;690:17;679:9;674:51;;;;;;;;;;;;;;;;;;;;;;;;;;0:821;;;2011:284:3:o;:::-;;;;;;;", + "deployedSourceMap": "2011:284:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;2011:284:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2187:27;;;:::i;:::-;;;;;;;;;;;;;;;;2263:29;;;:::i;2104:20::-;;;:::i;2187:27::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2187:27:3;;:::o;2263:29::-;;;;;:::i;2104:20::-;;;;;:::i;2011:284::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;242:1;231:9;227:17;295:4;284:9;277:23;362:6;355:4;344:9;340:20;333:36;424:1;407:143;436:6;431:3;428:15;407:143;;;536:3;528:6;524:16;518:23;486:30;;;505:4;486:30;479:63;462:4;453:14;407:143;;;411:16;720:4;709:9;700:6;694:4;690:17;679:9;674:51;;;;;;;;;;;;;;;;;;;;;;;;;;0:821;;;2011:284:3:o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;184:2;180:1;169:9;165:17;158:29;252:2;241:9;237:2;226:9;221:34;;;;;;;;;;;;;;;;;;;;;;;;;;271:9;265:16;259:22;;521:1;504:100;533:4;528:3;525:13;504:100;;;598:1;577:19;;;570:30;557:4;548:14;504:100;;;508:16;0:607;;2011:284:3:o;5:113:-1:-;88:24;106:5;88:24;;;83:3;76:37;70:48;;;125:213;243:2;228:18;;257:71;232:9;301:6;257:71;;;214:124;;;;;345:91;;-1:-1;;;;;505:54;;407:24;488:76", + "source": "pragma solidity ^0.5.16;\npragma experimental ABIEncoderV2;\n\n\ncontract GovernorBravoEvents {\n /// @notice An event emitted when a new proposal is created\n event ProposalCreated(uint id, address proposer, address[] targets, uint[] values, string[] signatures, bytes[] calldatas, uint startBlock, uint endBlock, string description);\n\n /// @notice An event emitted when a vote has been cast on a proposal\n /// @param voter The address which casted a vote\n /// @param proposalId The proposal id which was voted on\n /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\n /// @param votes Number of votes which were cast by the voter\n /// @param reason The reason given for the vote by the voter\n event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\n\n /// @notice An event emitted when a proposal has been canceled\n event ProposalCanceled(uint id);\n\n /// @notice An event emitted when a proposal has been queued in the Timelock\n event ProposalQueued(uint id, uint eta);\n\n /// @notice An event emitted when a proposal has been executed in the Timelock\n event ProposalExecuted(uint id);\n\n /// @notice An event emitted when the voting delay is set\n event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\n\n /// @notice An event emitted when the voting period is set\n event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\n\n /// @notice Emitted when implementation is changed\n event NewImplementation(address oldImplementation, address newImplementation);\n\n /// @notice Emitted when proposal threshold is set\n event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\n\n /// @notice Emitted when pendingAdmin is changed\n event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\n\n /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\n event NewAdmin(address oldAdmin, address newAdmin);\n}\n\ncontract GovernorBravoDelegatorStorage {\n /// @notice Administrator for this contract\n address public admin;\n\n /// @notice Pending administrator for this contract\n address public pendingAdmin;\n\n /// @notice Active brains of Governor\n address public implementation;\n}\n\n\n/**\n * @title Storage for Governor Bravo Delegate\n * @notice For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\n * GovernorBravoDelegateStorageVX.\n */\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\n\n /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\n uint public votingDelay;\n\n /// @notice The duration of voting on a proposal, in blocks\n uint public votingPeriod;\n\n /// @notice The number of votes required in order for a voter to become a proposer\n uint public proposalThreshold;\n\n /// @notice Initial proposal id set at become\n uint public initialProposalId;\n\n /// @notice The total number of proposals\n uint public proposalCount;\n\n /// @notice The address of the Compound Protocol Timelock\n TimelockInterface public timelock;\n\n /// @notice The address of the Compound governance token\n CompInterface public comp;\n\n /// @notice The official record of all proposals ever proposed\n mapping (uint => Proposal) public proposals;\n\n /// @notice The latest proposal for each proposer\n mapping (address => uint) public latestProposalIds;\n\n\n struct Proposal {\n /// @notice Unique id for looking up a proposal\n uint id;\n\n /// @notice Creator of the proposal\n address proposer;\n\n /// @notice The timestamp that the proposal will be available for execution, set once the vote succeeds\n uint eta;\n\n /// @notice the ordered list of target addresses for calls to be made\n address[] targets;\n\n /// @notice The ordered list of values (i.e. msg.value) to be passed to the calls to be made\n uint[] values;\n\n /// @notice The ordered list of function signatures to be called\n string[] signatures;\n\n /// @notice The ordered list of calldata to be passed to each call\n bytes[] calldatas;\n\n /// @notice The block at which voting begins: holders must delegate their votes prior to this block\n uint startBlock;\n\n /// @notice The block at which voting ends: votes must be cast prior to this block\n uint endBlock;\n\n /// @notice Current number of votes in favor of this proposal\n uint forVotes;\n\n /// @notice Current number of votes in opposition to this proposal\n uint againstVotes;\n\n /// @notice Current number of votes for abstaining for this proposal\n uint abstainVotes;\n\n /// @notice Flag marking whether the proposal has been canceled\n bool canceled;\n\n /// @notice Flag marking whether the proposal has been executed\n bool executed;\n\n /// @notice Receipts of ballots for the entire set of voters\n mapping (address => Receipt) receipts;\n }\n\n /// @notice Ballot receipt record for a voter\n struct Receipt {\n /// @notice Whether or not a vote has been cast\n bool hasVoted;\n\n /// @notice Whether or not the voter supports the proposal or abstains\n uint8 support;\n\n /// @notice The number of votes the voter had, which were cast\n uint96 votes;\n }\n\n /// @notice Possible states that a proposal may be in\n enum ProposalState {\n Pending,\n Active,\n Canceled,\n Defeated,\n Succeeded,\n Queued,\n Expired,\n Executed\n }\n}\n\ninterface TimelockInterface {\n function delay() external view returns (uint);\n function GRACE_PERIOD() external view returns (uint);\n function acceptAdmin() external;\n function queuedTransactions(bytes32 hash) external view returns (bool);\n function queueTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external returns (bytes32);\n function cancelTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external;\n function executeTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external payable returns (bytes memory);\n}\n\ninterface CompInterface {\n function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\n}\n", + "sourcePath": "/Users/janliphardt/Documents/GitHub/optimism/omgx_examples/compound-simple/contracts/GovernorBravoInterfaces.sol", + "ast": { + "absolutePath": "project:/contracts/GovernorBravoInterfaces.sol", + "exportedSymbols": { + "CompInterface": [ + 2636 + ], + "GovernorBravoDelegateStorageV1": [ + 2562 + ], + "GovernorBravoDelegatorStorage": [ + 2484 + ], + "GovernorBravoEvents": [ + 2477 + ], + "TimelockInterface": [ + 2626 + ] + }, + "id": 2637, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2389, + "literals": [ + "solidity", + "^", + "0.5", + ".16" + ], + "nodeType": "PragmaDirective", + "src": "0:24:3" + }, + { + "id": 2390, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "25:33:3" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2477, + "linearizedBaseContracts": [ + 2477 + ], + "name": "GovernorBravoEvents", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": "@notice An event emitted when a new proposal is created", + "id": 2414, + "name": "ProposalCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 2413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2392, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "182:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2391, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "182:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2394, + "indexed": false, + "name": "proposer", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "191:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2393, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "191:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2397, + "indexed": false, + "name": "targets", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "209:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2395, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "209:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2396, + "length": null, + "nodeType": "ArrayTypeName", + "src": "209:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2400, + "indexed": false, + "name": "values", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "228:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2398, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "228:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2399, + "length": null, + "nodeType": "ArrayTypeName", + "src": "228:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2403, + "indexed": false, + "name": "signatures", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "243:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 2401, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "243:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 2402, + "length": null, + "nodeType": "ArrayTypeName", + "src": "243:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2406, + "indexed": false, + "name": "calldatas", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "264:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 2404, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "264:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 2405, + "length": null, + "nodeType": "ArrayTypeName", + "src": "264:7:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2408, + "indexed": false, + "name": "startBlock", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "283:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2407, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "283:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2410, + "indexed": false, + "name": "endBlock", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "300:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2409, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "300:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2412, + "indexed": false, + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "315:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2411, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "315:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "181:153:3" + }, + "src": "160:175:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when a vote has been cast on a proposal\n @param voter The address which casted a vote\n @param proposalId The proposal id which was voted on\n @param support Support value for the vote. 0=against, 1=for, 2=abstain\n @param votes Number of votes which were cast by the voter\n @param reason The reason given for the vote by the voter", + "id": 2426, + "name": "VoteCast", + "nodeType": "EventDefinition", + "parameters": { + "id": 2425, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2416, + "indexed": true, + "name": "voter", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "753:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2415, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2418, + "indexed": false, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "776:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2417, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "776:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2420, + "indexed": false, + "name": "support", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "793:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2419, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "793:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2422, + "indexed": false, + "name": "votes", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "808:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2421, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "808:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2424, + "indexed": false, + "name": "reason", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "820:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2423, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "820:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:82:3" + }, + "src": "738:97:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been canceled", + "id": 2430, + "name": "ProposalCanceled", + "nodeType": "EventDefinition", + "parameters": { + "id": 2429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2428, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2430, + "src": "931:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2427, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "931:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "930:9:3" + }, + "src": "908:32:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been queued in the Timelock", + "id": 2436, + "name": "ProposalQueued", + "nodeType": "EventDefinition", + "parameters": { + "id": 2435, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2432, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2436, + "src": "1048:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2431, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1048:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2434, + "indexed": false, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2436, + "src": "1057:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2433, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1057:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1047:19:3" + }, + "src": "1027:40:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been executed in the Timelock", + "id": 2440, + "name": "ProposalExecuted", + "nodeType": "EventDefinition", + "parameters": { + "id": 2439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2438, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2440, + "src": "1179:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2437, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1179:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1178:9:3" + }, + "src": "1156:32:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when the voting delay is set", + "id": 2446, + "name": "VotingDelaySet", + "nodeType": "EventDefinition", + "parameters": { + "id": 2445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2442, + "indexed": false, + "name": "oldVotingDelay", + "nodeType": "VariableDeclaration", + "scope": 2446, + "src": "1277:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2441, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1277:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2444, + "indexed": false, + "name": "newVotingDelay", + "nodeType": "VariableDeclaration", + "scope": 2446, + "src": "1298:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2443, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1298:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1276:42:3" + }, + "src": "1256:63:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when the voting period is set", + "id": 2452, + "name": "VotingPeriodSet", + "nodeType": "EventDefinition", + "parameters": { + "id": 2451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2448, + "indexed": false, + "name": "oldVotingPeriod", + "nodeType": "VariableDeclaration", + "scope": 2452, + "src": "1410:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2447, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1410:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2450, + "indexed": false, + "name": "newVotingPeriod", + "nodeType": "VariableDeclaration", + "scope": 2452, + "src": "1432:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2449, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1432:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1409:44:3" + }, + "src": "1388:66:3" + }, + { + "anonymous": false, + "documentation": "@notice Emitted when implementation is changed", + "id": 2458, + "name": "NewImplementation", + "nodeType": "EventDefinition", + "parameters": { + "id": 2457, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2454, + "indexed": false, + "name": "oldImplementation", + "nodeType": "VariableDeclaration", + "scope": 2458, + "src": "1539:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2453, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1539:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2456, + "indexed": false, + "name": "newImplementation", + "nodeType": "VariableDeclaration", + "scope": 2458, + "src": "1566:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2455, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1566:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1538:54:3" + }, + "src": "1515:78:3" + }, + { + "anonymous": false, + "documentation": "@notice Emitted when proposal threshold is set", + "id": 2464, + "name": "ProposalThresholdSet", + "nodeType": "EventDefinition", + "parameters": { + "id": 2463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2460, + "indexed": false, + "name": "oldProposalThreshold", + "nodeType": "VariableDeclaration", + "scope": 2464, + "src": "1681:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2459, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1681:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2462, + "indexed": false, + "name": "newProposalThreshold", + "nodeType": "VariableDeclaration", + "scope": 2464, + "src": "1708:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2461, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1708:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1680:54:3" + }, + "src": "1654:81:3" + }, + { + "anonymous": false, + "documentation": "@notice Emitted when pendingAdmin is changed", + "id": 2470, + "name": "NewPendingAdmin", + "nodeType": "EventDefinition", + "parameters": { + "id": 2469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2466, + "indexed": false, + "name": "oldPendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 2470, + "src": "1816:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2465, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1816:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2468, + "indexed": false, + "name": "newPendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 2470, + "src": "1841:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2467, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1841:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1815:50:3" + }, + "src": "1794:72:3" + }, + { + "anonymous": false, + "documentation": "@notice Emitted when pendingAdmin is accepted, which means admin is updated", + "id": 2476, + "name": "NewAdmin", + "nodeType": "EventDefinition", + "parameters": { + "id": 2475, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2472, + "indexed": false, + "name": "oldAdmin", + "nodeType": "VariableDeclaration", + "scope": 2476, + "src": "1971:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2471, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1971:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2474, + "indexed": false, + "name": "newAdmin", + "nodeType": "VariableDeclaration", + "scope": 2476, + "src": "1989:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2473, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1989:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1970:36:3" + }, + "src": "1956:51:3" + } + ], + "scope": 2637, + "src": "61:1948:3" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2484, + "linearizedBaseContracts": [ + 2484 + ], + "name": "GovernorBravoDelegatorStorage", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 2479, + "name": "admin", + "nodeType": "VariableDeclaration", + "scope": 2484, + "src": "2104:20:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2478, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2104:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2481, + "name": "pendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 2484, + "src": "2187:27:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2480, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2187:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2483, + "name": "implementation", + "nodeType": "VariableDeclaration", + "scope": 2484, + "src": "2263:29:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2263:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + } + ], + "scope": 2637, + "src": "2011:284:3" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2485, + "name": "GovernorBravoDelegatorStorage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2484, + "src": "2617:29:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorBravoDelegatorStorage_$2484", + "typeString": "contract GovernorBravoDelegatorStorage" + } + }, + "id": 2486, + "nodeType": "InheritanceSpecifier", + "src": "2617:29:3" + } + ], + "contractDependencies": [ + 2484 + ], + "contractKind": "contract", + "documentation": "@title Storage for Governor Bravo Delegate\n@notice For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\ncontract which implements GovernorBravoDelegateStorageV1 and following the naming convention\nGovernorBravoDelegateStorageVX.", + "fullyImplemented": true, + "id": 2562, + "linearizedBaseContracts": [ + 2562, + 2484 + ], + "name": "GovernorBravoDelegateStorageV1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 2488, + "name": "votingDelay", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "2749:23:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2487, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2749:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2490, + "name": "votingPeriod", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "2843:24:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2489, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2843:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2492, + "name": "proposalThreshold", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "2961:29:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2491, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2961:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2494, + "name": "initialProposalId", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3047:29:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2493, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3047:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2496, + "name": "proposalCount", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3129:25:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2495, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3129:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2498, + "name": "timelock", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3223:33:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + }, + "typeName": { + "contractScope": null, + "id": 2497, + "name": "TimelockInterface", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2626, + "src": "3223:17:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2500, + "name": "comp", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3324:25:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CompInterface_$2636", + "typeString": "contract CompInterface" + }, + "typeName": { + "contractScope": null, + "id": 2499, + "name": "CompInterface", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2636, + "src": "3324:13:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CompInterface_$2636", + "typeString": "contract CompInterface" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2504, + "name": "proposals", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3423:43:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$2545_storage_$", + "typeString": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)" + }, + "typeName": { + "id": 2503, + "keyType": { + "id": 2501, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3432:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "3423:26:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$2545_storage_$", + "typeString": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)" + }, + "valueType": { + "contractScope": null, + "id": 2502, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2545, + "src": "3440:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2508, + "name": "latestProposalIds", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3527:50:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 2507, + "keyType": { + "id": 2505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3536:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3527:25:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 2506, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3547:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "canonicalName": "GovernorBravoDelegateStorageV1.Proposal", + "id": 2545, + "members": [ + { + "constant": false, + "id": 2510, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "3667:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2509, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3667:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2512, + "name": "proposer", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "3729:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3729:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2514, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "3868:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2513, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3868:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2517, + "name": "targets", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "3965:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2515, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3965:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2516, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3965:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2520, + "name": "values", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4094:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2518, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4094:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2519, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4094:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2523, + "name": "signatures", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4191:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 2521, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4191:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 2522, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4191:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2526, + "name": "calldatas", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4296:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 2524, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4296:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 2525, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4296:7:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2528, + "name": "startBlock", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4432:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2527, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4432:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2530, + "name": "endBlock", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4549:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2529, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4549:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2532, + "name": "forVotes", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4643:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2531, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4643:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2534, + "name": "againstVotes", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4742:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2533, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4742:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2536, + "name": "abstainVotes", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4847:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2535, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4847:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2538, + "name": "canceled", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4947:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2537, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4947:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2540, + "name": "executed", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "5043:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5043:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2544, + "name": "receipts", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "5136:37:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Receipt_$2552_storage_$", + "typeString": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)" + }, + "typeName": { + "id": 2543, + "keyType": { + "id": 2541, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5145:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5136:28:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Receipt_$2552_storage_$", + "typeString": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)" + }, + "valueType": { + "contractScope": null, + "id": 2542, + "name": "Receipt", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2552, + "src": "5156:7:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$2552_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Receipt" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Proposal", + "nodeType": "StructDefinition", + "scope": 2562, + "src": "3585:1595:3", + "visibility": "public" + }, + { + "canonicalName": "GovernorBravoDelegateStorageV1.Receipt", + "id": 2552, + "members": [ + { + "constant": false, + "id": 2547, + "name": "hasVoted", + "nodeType": "VariableDeclaration", + "scope": 2552, + "src": "5317:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2546, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5317:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2549, + "name": "support", + "nodeType": "VariableDeclaration", + "scope": 2552, + "src": "5420:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2548, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5420:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2551, + "name": "votes", + "nodeType": "VariableDeclaration", + "scope": 2552, + "src": "5515:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 2550, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "5515:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Receipt", + "nodeType": "StructDefinition", + "scope": 2562, + "src": "5236:298:3", + "visibility": "public" + }, + { + "canonicalName": "GovernorBravoDelegateStorageV1.ProposalState", + "id": 2561, + "members": [ + { + "id": 2553, + "name": "Pending", + "nodeType": "EnumValue", + "src": "5627:7:3" + }, + { + "id": 2554, + "name": "Active", + "nodeType": "EnumValue", + "src": "5644:6:3" + }, + { + "id": 2555, + "name": "Canceled", + "nodeType": "EnumValue", + "src": "5660:8:3" + }, + { + "id": 2556, + "name": "Defeated", + "nodeType": "EnumValue", + "src": "5678:8:3" + }, + { + "id": 2557, + "name": "Succeeded", + "nodeType": "EnumValue", + "src": "5696:9:3" + }, + { + "id": 2558, + "name": "Queued", + "nodeType": "EnumValue", + "src": "5715:6:3" + }, + { + "id": 2559, + "name": "Expired", + "nodeType": "EnumValue", + "src": "5731:7:3" + }, + { + "id": 2560, + "name": "Executed", + "nodeType": "EnumValue", + "src": "5748:8:3" + } + ], + "name": "ProposalState", + "nodeType": "EnumDefinition", + "src": "5598:164:3" + } + ], + "scope": 2637, + "src": "2574:3190:3" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 2626, + "linearizedBaseContracts": [ + 2626 + ], + "name": "TimelockInterface", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 2567, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "delay", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2563, + "nodeType": "ParameterList", + "parameters": [], + "src": "5814:2:3" + }, + "returnParameters": { + "id": 2566, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2565, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2567, + "src": "5840:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2564, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5840:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5839:6:3" + }, + "scope": 2626, + "src": "5800:46:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2572, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "GRACE_PERIOD", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2568, + "nodeType": "ParameterList", + "parameters": [], + "src": "5872:2:3" + }, + "returnParameters": { + "id": 2571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2570, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2572, + "src": "5898:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2569, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5898:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5897:6:3" + }, + "scope": 2626, + "src": "5851:53:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2575, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "acceptAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2573, + "nodeType": "ParameterList", + "parameters": [], + "src": "5929:2:3" + }, + "returnParameters": { + "id": 2574, + "nodeType": "ParameterList", + "parameters": [], + "src": "5940:0:3" + }, + "scope": 2626, + "src": "5909:32:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2582, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "queuedTransactions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2577, + "name": "hash", + "nodeType": "VariableDeclaration", + "scope": 2582, + "src": "5974:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2576, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5974:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5973:14:3" + }, + "returnParameters": { + "id": 2581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2580, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2582, + "src": "6011:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2579, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6011:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6010:6:3" + }, + "scope": 2626, + "src": "5946:71:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2597, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "queueTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2584, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6048:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6048:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2586, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6064:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2585, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6064:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2588, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6076:25:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2587, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6076:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2590, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6103:19:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2589, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6103:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2592, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6124:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2591, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6124:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6047:86:3" + }, + "returnParameters": { + "id": 2596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2595, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6152:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2594, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6152:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6151:9:3" + }, + "scope": 2626, + "src": "6022:139:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2610, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "cancelTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2599, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6193:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2598, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6193:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2601, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6209:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2600, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6209:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2603, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6221:25:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2602, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6221:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2605, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6248:19:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2604, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6248:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2607, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6269:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2606, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6269:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6192:86:3" + }, + "returnParameters": { + "id": 2609, + "nodeType": "ParameterList", + "parameters": [], + "src": "6287:0:3" + }, + "scope": 2626, + "src": "6166:122:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2625, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "executeTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2612, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6321:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2611, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6321:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2614, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6337:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2613, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6337:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2616, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6349:25:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2615, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6349:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2618, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6376:19:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2617, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6376:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2620, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6397:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2619, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6397:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6320:86:3" + }, + "returnParameters": { + "id": 2624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2623, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6433:12:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2622, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6433:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6432:14:3" + }, + "scope": 2626, + "src": "6293:154:3", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2637, + "src": "5766:683:3" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 2636, + "linearizedBaseContracts": [ + 2636 + ], + "name": "CompInterface", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 2635, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPriorVotes", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2631, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2628, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 2635, + "src": "6504:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2627, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6504:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2630, + "name": "blockNumber", + "nodeType": "VariableDeclaration", + "scope": 2635, + "src": "6521:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2629, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6521:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6503:35:3" + }, + "returnParameters": { + "id": 2634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2633, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2635, + "src": "6562:6:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 2632, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "6562:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6561:8:3" + }, + "scope": 2636, + "src": "6481:89:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2637, + "src": "6451:121:3" + } + ], + "src": "0:6573:3" + }, + "legacyAST": { + "attributes": { + "absolutePath": "project:/contracts/GovernorBravoInterfaces.sol", + "exportedSymbols": { + "CompInterface": [ + 2636 + ], + "GovernorBravoDelegateStorageV1": [ + 2562 + ], + "GovernorBravoDelegatorStorage": [ + 2484 + ], + "GovernorBravoEvents": [ + 2477 + ], + "TimelockInterface": [ + 2626 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.5", + ".16" + ] + }, + "id": 2389, + "name": "PragmaDirective", + "src": "0:24:3" + }, + { + "attributes": { + "literals": [ + "experimental", + "ABIEncoderV2" + ] + }, + "id": 2390, + "name": "PragmaDirective", + "src": "25:33:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2477 + ], + "name": "GovernorBravoEvents", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a new proposal is created", + "name": "ProposalCreated" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "id", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2391, + "name": "ElementaryTypeName", + "src": "182:4:3" + } + ], + "id": 2392, + "name": "VariableDeclaration", + "src": "182:7:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "proposer", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2393, + "name": "ElementaryTypeName", + "src": "191:7:3" + } + ], + "id": 2394, + "name": "VariableDeclaration", + "src": "191:16:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "targets", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "address[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "address[]" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2395, + "name": "ElementaryTypeName", + "src": "209:7:3" + } + ], + "id": 2396, + "name": "ArrayTypeName", + "src": "209:9:3" + } + ], + "id": 2397, + "name": "VariableDeclaration", + "src": "209:17:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "values", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "uint256[]" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2398, + "name": "ElementaryTypeName", + "src": "228:4:3" + } + ], + "id": 2399, + "name": "ArrayTypeName", + "src": "228:6:3" + } + ], + "id": 2400, + "name": "VariableDeclaration", + "src": "228:13:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "signatures", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "string[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "string[]" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2401, + "name": "ElementaryTypeName", + "src": "243:6:3" + } + ], + "id": 2402, + "name": "ArrayTypeName", + "src": "243:8:3" + } + ], + "id": 2403, + "name": "VariableDeclaration", + "src": "243:19:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "calldatas", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "bytes[]" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2404, + "name": "ElementaryTypeName", + "src": "264:5:3" + } + ], + "id": 2405, + "name": "ArrayTypeName", + "src": "264:7:3" + } + ], + "id": 2406, + "name": "VariableDeclaration", + "src": "264:17:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "startBlock", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2407, + "name": "ElementaryTypeName", + "src": "283:4:3" + } + ], + "id": 2408, + "name": "VariableDeclaration", + "src": "283:15:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "endBlock", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2409, + "name": "ElementaryTypeName", + "src": "300:4:3" + } + ], + "id": 2410, + "name": "VariableDeclaration", + "src": "300:13:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "description", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2411, + "name": "ElementaryTypeName", + "src": "315:6:3" + } + ], + "id": 2412, + "name": "VariableDeclaration", + "src": "315:18:3" + } + ], + "id": 2413, + "name": "ParameterList", + "src": "181:153:3" + } + ], + "id": 2414, + "name": "EventDefinition", + "src": "160:175:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a vote has been cast on a proposal\n @param voter The address which casted a vote\n @param proposalId The proposal id which was voted on\n @param support Support value for the vote. 0=against, 1=for, 2=abstain\n @param votes Number of votes which were cast by the voter\n @param reason The reason given for the vote by the voter", + "name": "VoteCast" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "voter", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2415, + "name": "ElementaryTypeName", + "src": "753:7:3" + } + ], + "id": 2416, + "name": "VariableDeclaration", + "src": "753:21:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "proposalId", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2417, + "name": "ElementaryTypeName", + "src": "776:4:3" + } + ], + "id": 2418, + "name": "VariableDeclaration", + "src": "776:15:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "support", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 2419, + "name": "ElementaryTypeName", + "src": "793:5:3" + } + ], + "id": 2420, + "name": "VariableDeclaration", + "src": "793:13:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "votes", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2421, + "name": "ElementaryTypeName", + "src": "808:4:3" + } + ], + "id": 2422, + "name": "VariableDeclaration", + "src": "808:10:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "reason", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2423, + "name": "ElementaryTypeName", + "src": "820:6:3" + } + ], + "id": 2424, + "name": "VariableDeclaration", + "src": "820:13:3" + } + ], + "id": 2425, + "name": "ParameterList", + "src": "752:82:3" + } + ], + "id": 2426, + "name": "EventDefinition", + "src": "738:97:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been canceled", + "name": "ProposalCanceled" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "id", + "scope": 2430, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2427, + "name": "ElementaryTypeName", + "src": "931:4:3" + } + ], + "id": 2428, + "name": "VariableDeclaration", + "src": "931:7:3" + } + ], + "id": 2429, + "name": "ParameterList", + "src": "930:9:3" + } + ], + "id": 2430, + "name": "EventDefinition", + "src": "908:32:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been queued in the Timelock", + "name": "ProposalQueued" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "id", + "scope": 2436, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2431, + "name": "ElementaryTypeName", + "src": "1048:4:3" + } + ], + "id": 2432, + "name": "VariableDeclaration", + "src": "1048:7:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "eta", + "scope": 2436, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2433, + "name": "ElementaryTypeName", + "src": "1057:4:3" + } + ], + "id": 2434, + "name": "VariableDeclaration", + "src": "1057:8:3" + } + ], + "id": 2435, + "name": "ParameterList", + "src": "1047:19:3" + } + ], + "id": 2436, + "name": "EventDefinition", + "src": "1027:40:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been executed in the Timelock", + "name": "ProposalExecuted" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "id", + "scope": 2440, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2437, + "name": "ElementaryTypeName", + "src": "1179:4:3" + } + ], + "id": 2438, + "name": "VariableDeclaration", + "src": "1179:7:3" + } + ], + "id": 2439, + "name": "ParameterList", + "src": "1178:9:3" + } + ], + "id": 2440, + "name": "EventDefinition", + "src": "1156:32:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when the voting delay is set", + "name": "VotingDelaySet" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldVotingDelay", + "scope": 2446, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2441, + "name": "ElementaryTypeName", + "src": "1277:4:3" + } + ], + "id": 2442, + "name": "VariableDeclaration", + "src": "1277:19:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newVotingDelay", + "scope": 2446, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2443, + "name": "ElementaryTypeName", + "src": "1298:4:3" + } + ], + "id": 2444, + "name": "VariableDeclaration", + "src": "1298:19:3" + } + ], + "id": 2445, + "name": "ParameterList", + "src": "1276:42:3" + } + ], + "id": 2446, + "name": "EventDefinition", + "src": "1256:63:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when the voting period is set", + "name": "VotingPeriodSet" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldVotingPeriod", + "scope": 2452, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2447, + "name": "ElementaryTypeName", + "src": "1410:4:3" + } + ], + "id": 2448, + "name": "VariableDeclaration", + "src": "1410:20:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newVotingPeriod", + "scope": 2452, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2449, + "name": "ElementaryTypeName", + "src": "1432:4:3" + } + ], + "id": 2450, + "name": "VariableDeclaration", + "src": "1432:20:3" + } + ], + "id": 2451, + "name": "ParameterList", + "src": "1409:44:3" + } + ], + "id": 2452, + "name": "EventDefinition", + "src": "1388:66:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice Emitted when implementation is changed", + "name": "NewImplementation" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldImplementation", + "scope": 2458, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2453, + "name": "ElementaryTypeName", + "src": "1539:7:3" + } + ], + "id": 2454, + "name": "VariableDeclaration", + "src": "1539:25:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newImplementation", + "scope": 2458, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2455, + "name": "ElementaryTypeName", + "src": "1566:7:3" + } + ], + "id": 2456, + "name": "VariableDeclaration", + "src": "1566:25:3" + } + ], + "id": 2457, + "name": "ParameterList", + "src": "1538:54:3" + } + ], + "id": 2458, + "name": "EventDefinition", + "src": "1515:78:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice Emitted when proposal threshold is set", + "name": "ProposalThresholdSet" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldProposalThreshold", + "scope": 2464, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2459, + "name": "ElementaryTypeName", + "src": "1681:4:3" + } + ], + "id": 2460, + "name": "VariableDeclaration", + "src": "1681:25:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newProposalThreshold", + "scope": 2464, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2461, + "name": "ElementaryTypeName", + "src": "1708:4:3" + } + ], + "id": 2462, + "name": "VariableDeclaration", + "src": "1708:25:3" + } + ], + "id": 2463, + "name": "ParameterList", + "src": "1680:54:3" + } + ], + "id": 2464, + "name": "EventDefinition", + "src": "1654:81:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice Emitted when pendingAdmin is changed", + "name": "NewPendingAdmin" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldPendingAdmin", + "scope": 2470, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2465, + "name": "ElementaryTypeName", + "src": "1816:7:3" + } + ], + "id": 2466, + "name": "VariableDeclaration", + "src": "1816:23:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newPendingAdmin", + "scope": 2470, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2467, + "name": "ElementaryTypeName", + "src": "1841:7:3" + } + ], + "id": 2468, + "name": "VariableDeclaration", + "src": "1841:23:3" + } + ], + "id": 2469, + "name": "ParameterList", + "src": "1815:50:3" + } + ], + "id": 2470, + "name": "EventDefinition", + "src": "1794:72:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice Emitted when pendingAdmin is accepted, which means admin is updated", + "name": "NewAdmin" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldAdmin", + "scope": 2476, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2471, + "name": "ElementaryTypeName", + "src": "1971:7:3" + } + ], + "id": 2472, + "name": "VariableDeclaration", + "src": "1971:16:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newAdmin", + "scope": 2476, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2473, + "name": "ElementaryTypeName", + "src": "1989:7:3" + } + ], + "id": 2474, + "name": "VariableDeclaration", + "src": "1989:16:3" + } + ], + "id": 2475, + "name": "ParameterList", + "src": "1970:36:3" + } + ], + "id": 2476, + "name": "EventDefinition", + "src": "1956:51:3" + } + ], + "id": 2477, + "name": "ContractDefinition", + "src": "61:1948:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2484 + ], + "name": "GovernorBravoDelegatorStorage", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "admin", + "scope": 2484, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2478, + "name": "ElementaryTypeName", + "src": "2104:7:3" + } + ], + "id": 2479, + "name": "VariableDeclaration", + "src": "2104:20:3" + }, + { + "attributes": { + "constant": false, + "name": "pendingAdmin", + "scope": 2484, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2480, + "name": "ElementaryTypeName", + "src": "2187:7:3" + } + ], + "id": 2481, + "name": "VariableDeclaration", + "src": "2187:27:3" + }, + { + "attributes": { + "constant": false, + "name": "implementation", + "scope": 2484, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2482, + "name": "ElementaryTypeName", + "src": "2263:7:3" + } + ], + "id": 2483, + "name": "VariableDeclaration", + "src": "2263:29:3" + } + ], + "id": 2484, + "name": "ContractDefinition", + "src": "2011:284:3" + }, + { + "attributes": { + "contractDependencies": [ + 2484 + ], + "contractKind": "contract", + "documentation": "@title Storage for Governor Bravo Delegate\n@notice For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\ncontract which implements GovernorBravoDelegateStorageV1 and following the naming convention\nGovernorBravoDelegateStorageVX.", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2562, + 2484 + ], + "name": "GovernorBravoDelegateStorageV1", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "GovernorBravoDelegatorStorage", + "referencedDeclaration": 2484, + "type": "contract GovernorBravoDelegatorStorage" + }, + "id": 2485, + "name": "UserDefinedTypeName", + "src": "2617:29:3" + } + ], + "id": 2486, + "name": "InheritanceSpecifier", + "src": "2617:29:3" + }, + { + "attributes": { + "constant": false, + "name": "votingDelay", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2487, + "name": "ElementaryTypeName", + "src": "2749:4:3" + } + ], + "id": 2488, + "name": "VariableDeclaration", + "src": "2749:23:3" + }, + { + "attributes": { + "constant": false, + "name": "votingPeriod", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2489, + "name": "ElementaryTypeName", + "src": "2843:4:3" + } + ], + "id": 2490, + "name": "VariableDeclaration", + "src": "2843:24:3" + }, + { + "attributes": { + "constant": false, + "name": "proposalThreshold", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2491, + "name": "ElementaryTypeName", + "src": "2961:4:3" + } + ], + "id": 2492, + "name": "VariableDeclaration", + "src": "2961:29:3" + }, + { + "attributes": { + "constant": false, + "name": "initialProposalId", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2493, + "name": "ElementaryTypeName", + "src": "3047:4:3" + } + ], + "id": 2494, + "name": "VariableDeclaration", + "src": "3047:29:3" + }, + { + "attributes": { + "constant": false, + "name": "proposalCount", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2495, + "name": "ElementaryTypeName", + "src": "3129:4:3" + } + ], + "id": 2496, + "name": "VariableDeclaration", + "src": "3129:25:3" + }, + { + "attributes": { + "constant": false, + "name": "timelock", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "contract TimelockInterface", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "TimelockInterface", + "referencedDeclaration": 2626, + "type": "contract TimelockInterface" + }, + "id": 2497, + "name": "UserDefinedTypeName", + "src": "3223:17:3" + } + ], + "id": 2498, + "name": "VariableDeclaration", + "src": "3223:33:3" + }, + { + "attributes": { + "constant": false, + "name": "comp", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "contract CompInterface", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "CompInterface", + "referencedDeclaration": 2636, + "type": "contract CompInterface" + }, + "id": 2499, + "name": "UserDefinedTypeName", + "src": "3324:13:3" + } + ], + "id": 2500, + "name": "VariableDeclaration", + "src": "3324:25:3" + }, + { + "attributes": { + "constant": false, + "name": "proposals", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2501, + "name": "ElementaryTypeName", + "src": "3432:4:3" + }, + { + "attributes": { + "contractScope": null, + "name": "Proposal", + "referencedDeclaration": 2545, + "type": "struct GovernorBravoDelegateStorageV1.Proposal" + }, + "id": 2502, + "name": "UserDefinedTypeName", + "src": "3440:8:3" + } + ], + "id": 2503, + "name": "Mapping", + "src": "3423:26:3" + } + ], + "id": 2504, + "name": "VariableDeclaration", + "src": "3423:43:3" + }, + { + "attributes": { + "constant": false, + "name": "latestProposalIds", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => uint256)", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2505, + "name": "ElementaryTypeName", + "src": "3536:7:3" + }, + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2506, + "name": "ElementaryTypeName", + "src": "3547:4:3" + } + ], + "id": 2507, + "name": "Mapping", + "src": "3527:25:3" + } + ], + "id": 2508, + "name": "VariableDeclaration", + "src": "3527:50:3" + }, + { + "attributes": { + "canonicalName": "GovernorBravoDelegateStorageV1.Proposal", + "name": "Proposal", + "scope": 2562, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "id", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2509, + "name": "ElementaryTypeName", + "src": "3667:4:3" + } + ], + "id": 2510, + "name": "VariableDeclaration", + "src": "3667:7:3" + }, + { + "attributes": { + "constant": false, + "name": "proposer", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2511, + "name": "ElementaryTypeName", + "src": "3729:7:3" + } + ], + "id": 2512, + "name": "VariableDeclaration", + "src": "3729:16:3" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2513, + "name": "ElementaryTypeName", + "src": "3868:4:3" + } + ], + "id": 2514, + "name": "VariableDeclaration", + "src": "3868:8:3" + }, + { + "attributes": { + "constant": false, + "name": "targets", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "address[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "address[]" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2515, + "name": "ElementaryTypeName", + "src": "3965:7:3" + } + ], + "id": 2516, + "name": "ArrayTypeName", + "src": "3965:9:3" + } + ], + "id": 2517, + "name": "VariableDeclaration", + "src": "3965:17:3" + }, + { + "attributes": { + "constant": false, + "name": "values", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "uint256[]" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2518, + "name": "ElementaryTypeName", + "src": "4094:4:3" + } + ], + "id": 2519, + "name": "ArrayTypeName", + "src": "4094:6:3" + } + ], + "id": 2520, + "name": "VariableDeclaration", + "src": "4094:13:3" + }, + { + "attributes": { + "constant": false, + "name": "signatures", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "string[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "string[]" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2521, + "name": "ElementaryTypeName", + "src": "4191:6:3" + } + ], + "id": 2522, + "name": "ArrayTypeName", + "src": "4191:8:3" + } + ], + "id": 2523, + "name": "VariableDeclaration", + "src": "4191:19:3" + }, + { + "attributes": { + "constant": false, + "name": "calldatas", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "bytes[]" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2524, + "name": "ElementaryTypeName", + "src": "4296:5:3" + } + ], + "id": 2525, + "name": "ArrayTypeName", + "src": "4296:7:3" + } + ], + "id": 2526, + "name": "VariableDeclaration", + "src": "4296:17:3" + }, + { + "attributes": { + "constant": false, + "name": "startBlock", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2527, + "name": "ElementaryTypeName", + "src": "4432:4:3" + } + ], + "id": 2528, + "name": "VariableDeclaration", + "src": "4432:15:3" + }, + { + "attributes": { + "constant": false, + "name": "endBlock", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2529, + "name": "ElementaryTypeName", + "src": "4549:4:3" + } + ], + "id": 2530, + "name": "VariableDeclaration", + "src": "4549:13:3" + }, + { + "attributes": { + "constant": false, + "name": "forVotes", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2531, + "name": "ElementaryTypeName", + "src": "4643:4:3" + } + ], + "id": 2532, + "name": "VariableDeclaration", + "src": "4643:13:3" + }, + { + "attributes": { + "constant": false, + "name": "againstVotes", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2533, + "name": "ElementaryTypeName", + "src": "4742:4:3" + } + ], + "id": 2534, + "name": "VariableDeclaration", + "src": "4742:17:3" + }, + { + "attributes": { + "constant": false, + "name": "abstainVotes", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2535, + "name": "ElementaryTypeName", + "src": "4847:4:3" + } + ], + "id": 2536, + "name": "VariableDeclaration", + "src": "4847:17:3" + }, + { + "attributes": { + "constant": false, + "name": "canceled", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2537, + "name": "ElementaryTypeName", + "src": "4947:4:3" + } + ], + "id": 2538, + "name": "VariableDeclaration", + "src": "4947:13:3" + }, + { + "attributes": { + "constant": false, + "name": "executed", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2539, + "name": "ElementaryTypeName", + "src": "5043:4:3" + } + ], + "id": 2540, + "name": "VariableDeclaration", + "src": "5043:13:3" + }, + { + "attributes": { + "constant": false, + "name": "receipts", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2541, + "name": "ElementaryTypeName", + "src": "5145:7:3" + }, + { + "attributes": { + "contractScope": null, + "name": "Receipt", + "referencedDeclaration": 2552, + "type": "struct GovernorBravoDelegateStorageV1.Receipt" + }, + "id": 2542, + "name": "UserDefinedTypeName", + "src": "5156:7:3" + } + ], + "id": 2543, + "name": "Mapping", + "src": "5136:28:3" + } + ], + "id": 2544, + "name": "VariableDeclaration", + "src": "5136:37:3" + } + ], + "id": 2545, + "name": "StructDefinition", + "src": "3585:1595:3" + }, + { + "attributes": { + "canonicalName": "GovernorBravoDelegateStorageV1.Receipt", + "name": "Receipt", + "scope": 2562, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "hasVoted", + "scope": 2552, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2546, + "name": "ElementaryTypeName", + "src": "5317:4:3" + } + ], + "id": 2547, + "name": "VariableDeclaration", + "src": "5317:13:3" + }, + { + "attributes": { + "constant": false, + "name": "support", + "scope": 2552, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 2548, + "name": "ElementaryTypeName", + "src": "5420:5:3" + } + ], + "id": 2549, + "name": "VariableDeclaration", + "src": "5420:13:3" + }, + { + "attributes": { + "constant": false, + "name": "votes", + "scope": 2552, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 2550, + "name": "ElementaryTypeName", + "src": "5515:6:3" + } + ], + "id": 2551, + "name": "VariableDeclaration", + "src": "5515:12:3" + } + ], + "id": 2552, + "name": "StructDefinition", + "src": "5236:298:3" + }, + { + "attributes": { + "canonicalName": "GovernorBravoDelegateStorageV1.ProposalState", + "name": "ProposalState" + }, + "children": [ + { + "attributes": { + "name": "Pending" + }, + "id": 2553, + "name": "EnumValue", + "src": "5627:7:3" + }, + { + "attributes": { + "name": "Active" + }, + "id": 2554, + "name": "EnumValue", + "src": "5644:6:3" + }, + { + "attributes": { + "name": "Canceled" + }, + "id": 2555, + "name": "EnumValue", + "src": "5660:8:3" + }, + { + "attributes": { + "name": "Defeated" + }, + "id": 2556, + "name": "EnumValue", + "src": "5678:8:3" + }, + { + "attributes": { + "name": "Succeeded" + }, + "id": 2557, + "name": "EnumValue", + "src": "5696:9:3" + }, + { + "attributes": { + "name": "Queued" + }, + "id": 2558, + "name": "EnumValue", + "src": "5715:6:3" + }, + { + "attributes": { + "name": "Expired" + }, + "id": 2559, + "name": "EnumValue", + "src": "5731:7:3" + }, + { + "attributes": { + "name": "Executed" + }, + "id": 2560, + "name": "EnumValue", + "src": "5748:8:3" + } + ], + "id": 2561, + "name": "EnumDefinition", + "src": "5598:164:3" + } + ], + "id": 2562, + "name": "ContractDefinition", + "src": "2574:3190:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 2626 + ], + "name": "TimelockInterface", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "delay", + "scope": 2626, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2563, + "name": "ParameterList", + "src": "5814:2:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2567, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2564, + "name": "ElementaryTypeName", + "src": "5840:4:3" + } + ], + "id": 2565, + "name": "VariableDeclaration", + "src": "5840:4:3" + } + ], + "id": 2566, + "name": "ParameterList", + "src": "5839:6:3" + } + ], + "id": 2567, + "name": "FunctionDefinition", + "src": "5800:46:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "GRACE_PERIOD", + "scope": 2626, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2568, + "name": "ParameterList", + "src": "5872:2:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2572, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2569, + "name": "ElementaryTypeName", + "src": "5898:4:3" + } + ], + "id": 2570, + "name": "VariableDeclaration", + "src": "5898:4:3" + } + ], + "id": 2571, + "name": "ParameterList", + "src": "5897:6:3" + } + ], + "id": 2572, + "name": "FunctionDefinition", + "src": "5851:53:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "acceptAdmin", + "scope": 2626, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2573, + "name": "ParameterList", + "src": "5929:2:3" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2574, + "name": "ParameterList", + "src": "5940:0:3" + } + ], + "id": 2575, + "name": "FunctionDefinition", + "src": "5909:32:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "queuedTransactions", + "scope": 2626, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "hash", + "scope": 2582, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2576, + "name": "ElementaryTypeName", + "src": "5974:7:3" + } + ], + "id": 2577, + "name": "VariableDeclaration", + "src": "5974:12:3" + } + ], + "id": 2578, + "name": "ParameterList", + "src": "5973:14:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2582, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2579, + "name": "ElementaryTypeName", + "src": "6011:4:3" + } + ], + "id": 2580, + "name": "VariableDeclaration", + "src": "6011:4:3" + } + ], + "id": 2581, + "name": "ParameterList", + "src": "6010:6:3" + } + ], + "id": 2582, + "name": "FunctionDefinition", + "src": "5946:71:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "queueTransaction", + "scope": 2626, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 2597, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2583, + "name": "ElementaryTypeName", + "src": "6048:7:3" + } + ], + "id": 2584, + "name": "VariableDeclaration", + "src": "6048:14:3" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 2597, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2585, + "name": "ElementaryTypeName", + "src": "6064:4:3" + } + ], + "id": 2586, + "name": "VariableDeclaration", + "src": "6064:10:3" + }, + { + "attributes": { + "constant": false, + "name": "signature", + "scope": 2597, + "stateVariable": false, + "storageLocation": "calldata", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2587, + "name": "ElementaryTypeName", + "src": "6076:6:3" + } + ], + "id": 2588, + "name": "VariableDeclaration", + "src": "6076:25:3" + }, + { + "attributes": { + "constant": false, + "name": "data", + "scope": 2597, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2589, + "name": "ElementaryTypeName", + "src": "6103:5:3" + } + ], + "id": 2590, + "name": "VariableDeclaration", + "src": "6103:19:3" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 2597, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2591, + "name": "ElementaryTypeName", + "src": "6124:4:3" + } + ], + "id": 2592, + "name": "VariableDeclaration", + "src": "6124:8:3" + } + ], + "id": 2593, + "name": "ParameterList", + "src": "6047:86:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2597, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2594, + "name": "ElementaryTypeName", + "src": "6152:7:3" + } + ], + "id": 2595, + "name": "VariableDeclaration", + "src": "6152:7:3" + } + ], + "id": 2596, + "name": "ParameterList", + "src": "6151:9:3" + } + ], + "id": 2597, + "name": "FunctionDefinition", + "src": "6022:139:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "cancelTransaction", + "scope": 2626, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 2610, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2598, + "name": "ElementaryTypeName", + "src": "6193:7:3" + } + ], + "id": 2599, + "name": "VariableDeclaration", + "src": "6193:14:3" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 2610, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2600, + "name": "ElementaryTypeName", + "src": "6209:4:3" + } + ], + "id": 2601, + "name": "VariableDeclaration", + "src": "6209:10:3" + }, + { + "attributes": { + "constant": false, + "name": "signature", + "scope": 2610, + "stateVariable": false, + "storageLocation": "calldata", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2602, + "name": "ElementaryTypeName", + "src": "6221:6:3" + } + ], + "id": 2603, + "name": "VariableDeclaration", + "src": "6221:25:3" + }, + { + "attributes": { + "constant": false, + "name": "data", + "scope": 2610, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2604, + "name": "ElementaryTypeName", + "src": "6248:5:3" + } + ], + "id": 2605, + "name": "VariableDeclaration", + "src": "6248:19:3" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 2610, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2606, + "name": "ElementaryTypeName", + "src": "6269:4:3" + } + ], + "id": 2607, + "name": "VariableDeclaration", + "src": "6269:8:3" + } + ], + "id": 2608, + "name": "ParameterList", + "src": "6192:86:3" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2609, + "name": "ParameterList", + "src": "6287:0:3" + } + ], + "id": 2610, + "name": "FunctionDefinition", + "src": "6166:122:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "executeTransaction", + "scope": 2626, + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 2625, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2611, + "name": "ElementaryTypeName", + "src": "6321:7:3" + } + ], + "id": 2612, + "name": "VariableDeclaration", + "src": "6321:14:3" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 2625, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2613, + "name": "ElementaryTypeName", + "src": "6337:4:3" + } + ], + "id": 2614, + "name": "VariableDeclaration", + "src": "6337:10:3" + }, + { + "attributes": { + "constant": false, + "name": "signature", + "scope": 2625, + "stateVariable": false, + "storageLocation": "calldata", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2615, + "name": "ElementaryTypeName", + "src": "6349:6:3" + } + ], + "id": 2616, + "name": "VariableDeclaration", + "src": "6349:25:3" + }, + { + "attributes": { + "constant": false, + "name": "data", + "scope": 2625, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2617, + "name": "ElementaryTypeName", + "src": "6376:5:3" + } + ], + "id": 2618, + "name": "VariableDeclaration", + "src": "6376:19:3" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 2625, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2619, + "name": "ElementaryTypeName", + "src": "6397:4:3" + } + ], + "id": 2620, + "name": "VariableDeclaration", + "src": "6397:8:3" + } + ], + "id": 2621, + "name": "ParameterList", + "src": "6320:86:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2625, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2622, + "name": "ElementaryTypeName", + "src": "6433:5:3" + } + ], + "id": 2623, + "name": "VariableDeclaration", + "src": "6433:12:3" + } + ], + "id": 2624, + "name": "ParameterList", + "src": "6432:14:3" + } + ], + "id": 2625, + "name": "FunctionDefinition", + "src": "6293:154:3" + } + ], + "id": 2626, + "name": "ContractDefinition", + "src": "5766:683:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 2636 + ], + "name": "CompInterface", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getPriorVotes", + "scope": 2636, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "account", + "scope": 2635, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2627, + "name": "ElementaryTypeName", + "src": "6504:7:3" + } + ], + "id": 2628, + "name": "VariableDeclaration", + "src": "6504:15:3" + }, + { + "attributes": { + "constant": false, + "name": "blockNumber", + "scope": 2635, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2629, + "name": "ElementaryTypeName", + "src": "6521:4:3" + } + ], + "id": 2630, + "name": "VariableDeclaration", + "src": "6521:16:3" + } + ], + "id": 2631, + "name": "ParameterList", + "src": "6503:35:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2635, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 2632, + "name": "ElementaryTypeName", + "src": "6562:6:3" + } + ], + "id": 2633, + "name": "VariableDeclaration", + "src": "6562:6:3" + } + ], + "id": 2634, + "name": "ParameterList", + "src": "6561:8:3" + } + ], + "id": 2635, + "name": "FunctionDefinition", + "src": "6481:89:3" + } + ], + "id": 2636, + "name": "ContractDefinition", + "src": "6451:121:3" + } + ], + "id": 2637, + "name": "SourceUnit", + "src": "0:6573:3" + }, + "compiler": { + "name": "solc", + "version": "0.5.16" + }, + "networks": {}, + "schemaVersion": "3.4.3", + "updatedAt": "2021-09-05T21:45:41.185Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/omgx_examples/compound-simple/build-ovm/GovernorBravoEvents.json b/omgx_examples/compound-simple/build-ovm/GovernorBravoEvents.json new file mode 100644 index 000000000000..34d081ee984d --- /dev/null +++ b/omgx_examples/compound-simple/build-ovm/GovernorBravoEvents.json @@ -0,0 +1,6470 @@ +{ + "contractName": "GovernorBravoEvents", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "NewAdmin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldImplementation", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newImplementation", + "type": "address" + } + ], + "name": "NewImplementation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldPendingAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newPendingAdmin", + "type": "address" + } + ], + "name": "NewPendingAdmin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "ProposalCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "proposer", + "type": "address" + }, + { + "indexed": false, + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "string[]", + "name": "signatures", + "type": "string[]" + }, + { + "indexed": false, + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "startBlock", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "endBlock", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "ProposalCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "ProposalExecuted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "ProposalQueued", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldProposalThreshold", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newProposalThreshold", + "type": "uint256" + } + ], + "name": "ProposalThresholdSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "votes", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "VoteCast", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldVotingDelay", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newVotingDelay", + "type": "uint256" + } + ], + "name": "VotingDelaySet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldVotingPeriod", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newVotingPeriod", + "type": "uint256" + } + ], + "name": "VotingPeriodSet", + "type": "event" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.16-develop.2020.11.10+ovm+commit.00cdd204\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldImplementation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"NewImplementation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldPendingAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"NewPendingAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"ProposalQueued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldProposalThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalThresholdSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodSet\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/GovernorBravoInterfaces.sol\":\"GovernorBravoEvents\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"project:/contracts/GovernorBravoInterfaces.sol\":{\"keccak256\":\"0x74cb8a82fef2906cbee7c96d7aa72e46b01df83859704a35a4a63d3aa9493718\",\"urls\":[\"bzz-raw://82b0c9f82c46927ea7128afc44921d60af23461da7f6d0c29484b5b92ad2b87a\",\"dweb:/ipfs/QmbNHAYEhhXzmdsmfMPLuGAGceq9oHD9AaDmyrnVaXPrhh\"]}},\"version\":1}", + "bytecode": "0x60806040523480156100195760008061001661001f565b50505b5061008a565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561005757808601518282016040015260200161003c565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6079806100986000396000f3fe6080604052600080600d6010565b50505b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156046578086015182820160400152602001602d565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b50505056", + "deployedBytecode": "0x6080604052600080600d6010565b50505b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156046578086015182820160400152602001602d565b506020828760640184336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c5250505056", + "sourceMap": "61:1948:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;61:1948:3;;;;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;242:1;231:9;227:17;295:4;284:9;277:23;362:6;355:4;344:9;340:20;333:36;424:1;407:143;436:6;431:3;428:15;407:143;;;536:3;528:6;524:16;518:23;486:30;;;505:4;486:30;479:63;462:4;453:14;407:143;;;411:16;720:4;709:9;700:6;694:4;690:17;679:9;674:51;;;;;;;;;;;;;;;;;;;;;;;;;;0:821;;;61:1948:3:o;:::-;;;;;;;", + "deployedSourceMap": "61:1948:3:-;;;;;;;:::i;:::-;;;;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;242:1;231:9;227:17;295:4;284:9;277:23;362:6;355:4;344:9;340:20;333:36;424:1;407:143;436:6;431:3;428:15;407:143;;;536:3;528:6;524:16;518:23;486:30;;;505:4;486:30;479:63;462:4;453:14;407:143;;;411:16;720:4;709:9;700:6;694:4;690:17;679:9;674:51;;;;;;;;;;;;;;;;;;;;;;;;;;0:821;;;61:1948:3:o", + "source": "pragma solidity ^0.5.16;\npragma experimental ABIEncoderV2;\n\n\ncontract GovernorBravoEvents {\n /// @notice An event emitted when a new proposal is created\n event ProposalCreated(uint id, address proposer, address[] targets, uint[] values, string[] signatures, bytes[] calldatas, uint startBlock, uint endBlock, string description);\n\n /// @notice An event emitted when a vote has been cast on a proposal\n /// @param voter The address which casted a vote\n /// @param proposalId The proposal id which was voted on\n /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\n /// @param votes Number of votes which were cast by the voter\n /// @param reason The reason given for the vote by the voter\n event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\n\n /// @notice An event emitted when a proposal has been canceled\n event ProposalCanceled(uint id);\n\n /// @notice An event emitted when a proposal has been queued in the Timelock\n event ProposalQueued(uint id, uint eta);\n\n /// @notice An event emitted when a proposal has been executed in the Timelock\n event ProposalExecuted(uint id);\n\n /// @notice An event emitted when the voting delay is set\n event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\n\n /// @notice An event emitted when the voting period is set\n event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\n\n /// @notice Emitted when implementation is changed\n event NewImplementation(address oldImplementation, address newImplementation);\n\n /// @notice Emitted when proposal threshold is set\n event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\n\n /// @notice Emitted when pendingAdmin is changed\n event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\n\n /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\n event NewAdmin(address oldAdmin, address newAdmin);\n}\n\ncontract GovernorBravoDelegatorStorage {\n /// @notice Administrator for this contract\n address public admin;\n\n /// @notice Pending administrator for this contract\n address public pendingAdmin;\n\n /// @notice Active brains of Governor\n address public implementation;\n}\n\n\n/**\n * @title Storage for Governor Bravo Delegate\n * @notice For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\n * GovernorBravoDelegateStorageVX.\n */\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\n\n /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\n uint public votingDelay;\n\n /// @notice The duration of voting on a proposal, in blocks\n uint public votingPeriod;\n\n /// @notice The number of votes required in order for a voter to become a proposer\n uint public proposalThreshold;\n\n /// @notice Initial proposal id set at become\n uint public initialProposalId;\n\n /// @notice The total number of proposals\n uint public proposalCount;\n\n /// @notice The address of the Compound Protocol Timelock\n TimelockInterface public timelock;\n\n /// @notice The address of the Compound governance token\n CompInterface public comp;\n\n /// @notice The official record of all proposals ever proposed\n mapping (uint => Proposal) public proposals;\n\n /// @notice The latest proposal for each proposer\n mapping (address => uint) public latestProposalIds;\n\n\n struct Proposal {\n /// @notice Unique id for looking up a proposal\n uint id;\n\n /// @notice Creator of the proposal\n address proposer;\n\n /// @notice The timestamp that the proposal will be available for execution, set once the vote succeeds\n uint eta;\n\n /// @notice the ordered list of target addresses for calls to be made\n address[] targets;\n\n /// @notice The ordered list of values (i.e. msg.value) to be passed to the calls to be made\n uint[] values;\n\n /// @notice The ordered list of function signatures to be called\n string[] signatures;\n\n /// @notice The ordered list of calldata to be passed to each call\n bytes[] calldatas;\n\n /// @notice The block at which voting begins: holders must delegate their votes prior to this block\n uint startBlock;\n\n /// @notice The block at which voting ends: votes must be cast prior to this block\n uint endBlock;\n\n /// @notice Current number of votes in favor of this proposal\n uint forVotes;\n\n /// @notice Current number of votes in opposition to this proposal\n uint againstVotes;\n\n /// @notice Current number of votes for abstaining for this proposal\n uint abstainVotes;\n\n /// @notice Flag marking whether the proposal has been canceled\n bool canceled;\n\n /// @notice Flag marking whether the proposal has been executed\n bool executed;\n\n /// @notice Receipts of ballots for the entire set of voters\n mapping (address => Receipt) receipts;\n }\n\n /// @notice Ballot receipt record for a voter\n struct Receipt {\n /// @notice Whether or not a vote has been cast\n bool hasVoted;\n\n /// @notice Whether or not the voter supports the proposal or abstains\n uint8 support;\n\n /// @notice The number of votes the voter had, which were cast\n uint96 votes;\n }\n\n /// @notice Possible states that a proposal may be in\n enum ProposalState {\n Pending,\n Active,\n Canceled,\n Defeated,\n Succeeded,\n Queued,\n Expired,\n Executed\n }\n}\n\ninterface TimelockInterface {\n function delay() external view returns (uint);\n function GRACE_PERIOD() external view returns (uint);\n function acceptAdmin() external;\n function queuedTransactions(bytes32 hash) external view returns (bool);\n function queueTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external returns (bytes32);\n function cancelTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external;\n function executeTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external payable returns (bytes memory);\n}\n\ninterface CompInterface {\n function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\n}\n", + "sourcePath": "/Users/janliphardt/Documents/GitHub/optimism/omgx_examples/compound-simple/contracts/GovernorBravoInterfaces.sol", + "ast": { + "absolutePath": "project:/contracts/GovernorBravoInterfaces.sol", + "exportedSymbols": { + "CompInterface": [ + 2636 + ], + "GovernorBravoDelegateStorageV1": [ + 2562 + ], + "GovernorBravoDelegatorStorage": [ + 2484 + ], + "GovernorBravoEvents": [ + 2477 + ], + "TimelockInterface": [ + 2626 + ] + }, + "id": 2637, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2389, + "literals": [ + "solidity", + "^", + "0.5", + ".16" + ], + "nodeType": "PragmaDirective", + "src": "0:24:3" + }, + { + "id": 2390, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "25:33:3" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2477, + "linearizedBaseContracts": [ + 2477 + ], + "name": "GovernorBravoEvents", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": "@notice An event emitted when a new proposal is created", + "id": 2414, + "name": "ProposalCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 2413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2392, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "182:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2391, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "182:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2394, + "indexed": false, + "name": "proposer", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "191:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2393, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "191:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2397, + "indexed": false, + "name": "targets", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "209:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2395, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "209:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2396, + "length": null, + "nodeType": "ArrayTypeName", + "src": "209:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2400, + "indexed": false, + "name": "values", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "228:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2398, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "228:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2399, + "length": null, + "nodeType": "ArrayTypeName", + "src": "228:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2403, + "indexed": false, + "name": "signatures", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "243:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 2401, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "243:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 2402, + "length": null, + "nodeType": "ArrayTypeName", + "src": "243:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2406, + "indexed": false, + "name": "calldatas", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "264:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 2404, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "264:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 2405, + "length": null, + "nodeType": "ArrayTypeName", + "src": "264:7:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2408, + "indexed": false, + "name": "startBlock", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "283:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2407, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "283:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2410, + "indexed": false, + "name": "endBlock", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "300:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2409, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "300:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2412, + "indexed": false, + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "315:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2411, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "315:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "181:153:3" + }, + "src": "160:175:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when a vote has been cast on a proposal\n @param voter The address which casted a vote\n @param proposalId The proposal id which was voted on\n @param support Support value for the vote. 0=against, 1=for, 2=abstain\n @param votes Number of votes which were cast by the voter\n @param reason The reason given for the vote by the voter", + "id": 2426, + "name": "VoteCast", + "nodeType": "EventDefinition", + "parameters": { + "id": 2425, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2416, + "indexed": true, + "name": "voter", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "753:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2415, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2418, + "indexed": false, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "776:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2417, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "776:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2420, + "indexed": false, + "name": "support", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "793:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2419, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "793:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2422, + "indexed": false, + "name": "votes", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "808:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2421, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "808:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2424, + "indexed": false, + "name": "reason", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "820:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2423, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "820:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:82:3" + }, + "src": "738:97:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been canceled", + "id": 2430, + "name": "ProposalCanceled", + "nodeType": "EventDefinition", + "parameters": { + "id": 2429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2428, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2430, + "src": "931:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2427, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "931:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "930:9:3" + }, + "src": "908:32:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been queued in the Timelock", + "id": 2436, + "name": "ProposalQueued", + "nodeType": "EventDefinition", + "parameters": { + "id": 2435, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2432, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2436, + "src": "1048:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2431, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1048:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2434, + "indexed": false, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2436, + "src": "1057:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2433, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1057:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1047:19:3" + }, + "src": "1027:40:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been executed in the Timelock", + "id": 2440, + "name": "ProposalExecuted", + "nodeType": "EventDefinition", + "parameters": { + "id": 2439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2438, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2440, + "src": "1179:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2437, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1179:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1178:9:3" + }, + "src": "1156:32:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when the voting delay is set", + "id": 2446, + "name": "VotingDelaySet", + "nodeType": "EventDefinition", + "parameters": { + "id": 2445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2442, + "indexed": false, + "name": "oldVotingDelay", + "nodeType": "VariableDeclaration", + "scope": 2446, + "src": "1277:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2441, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1277:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2444, + "indexed": false, + "name": "newVotingDelay", + "nodeType": "VariableDeclaration", + "scope": 2446, + "src": "1298:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2443, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1298:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1276:42:3" + }, + "src": "1256:63:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when the voting period is set", + "id": 2452, + "name": "VotingPeriodSet", + "nodeType": "EventDefinition", + "parameters": { + "id": 2451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2448, + "indexed": false, + "name": "oldVotingPeriod", + "nodeType": "VariableDeclaration", + "scope": 2452, + "src": "1410:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2447, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1410:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2450, + "indexed": false, + "name": "newVotingPeriod", + "nodeType": "VariableDeclaration", + "scope": 2452, + "src": "1432:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2449, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1432:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1409:44:3" + }, + "src": "1388:66:3" + }, + { + "anonymous": false, + "documentation": "@notice Emitted when implementation is changed", + "id": 2458, + "name": "NewImplementation", + "nodeType": "EventDefinition", + "parameters": { + "id": 2457, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2454, + "indexed": false, + "name": "oldImplementation", + "nodeType": "VariableDeclaration", + "scope": 2458, + "src": "1539:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2453, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1539:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2456, + "indexed": false, + "name": "newImplementation", + "nodeType": "VariableDeclaration", + "scope": 2458, + "src": "1566:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2455, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1566:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1538:54:3" + }, + "src": "1515:78:3" + }, + { + "anonymous": false, + "documentation": "@notice Emitted when proposal threshold is set", + "id": 2464, + "name": "ProposalThresholdSet", + "nodeType": "EventDefinition", + "parameters": { + "id": 2463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2460, + "indexed": false, + "name": "oldProposalThreshold", + "nodeType": "VariableDeclaration", + "scope": 2464, + "src": "1681:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2459, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1681:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2462, + "indexed": false, + "name": "newProposalThreshold", + "nodeType": "VariableDeclaration", + "scope": 2464, + "src": "1708:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2461, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1708:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1680:54:3" + }, + "src": "1654:81:3" + }, + { + "anonymous": false, + "documentation": "@notice Emitted when pendingAdmin is changed", + "id": 2470, + "name": "NewPendingAdmin", + "nodeType": "EventDefinition", + "parameters": { + "id": 2469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2466, + "indexed": false, + "name": "oldPendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 2470, + "src": "1816:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2465, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1816:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2468, + "indexed": false, + "name": "newPendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 2470, + "src": "1841:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2467, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1841:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1815:50:3" + }, + "src": "1794:72:3" + }, + { + "anonymous": false, + "documentation": "@notice Emitted when pendingAdmin is accepted, which means admin is updated", + "id": 2476, + "name": "NewAdmin", + "nodeType": "EventDefinition", + "parameters": { + "id": 2475, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2472, + "indexed": false, + "name": "oldAdmin", + "nodeType": "VariableDeclaration", + "scope": 2476, + "src": "1971:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2471, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1971:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2474, + "indexed": false, + "name": "newAdmin", + "nodeType": "VariableDeclaration", + "scope": 2476, + "src": "1989:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2473, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1989:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1970:36:3" + }, + "src": "1956:51:3" + } + ], + "scope": 2637, + "src": "61:1948:3" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2484, + "linearizedBaseContracts": [ + 2484 + ], + "name": "GovernorBravoDelegatorStorage", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 2479, + "name": "admin", + "nodeType": "VariableDeclaration", + "scope": 2484, + "src": "2104:20:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2478, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2104:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2481, + "name": "pendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 2484, + "src": "2187:27:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2480, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2187:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2483, + "name": "implementation", + "nodeType": "VariableDeclaration", + "scope": 2484, + "src": "2263:29:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2263:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + } + ], + "scope": 2637, + "src": "2011:284:3" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2485, + "name": "GovernorBravoDelegatorStorage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2484, + "src": "2617:29:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorBravoDelegatorStorage_$2484", + "typeString": "contract GovernorBravoDelegatorStorage" + } + }, + "id": 2486, + "nodeType": "InheritanceSpecifier", + "src": "2617:29:3" + } + ], + "contractDependencies": [ + 2484 + ], + "contractKind": "contract", + "documentation": "@title Storage for Governor Bravo Delegate\n@notice For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\ncontract which implements GovernorBravoDelegateStorageV1 and following the naming convention\nGovernorBravoDelegateStorageVX.", + "fullyImplemented": true, + "id": 2562, + "linearizedBaseContracts": [ + 2562, + 2484 + ], + "name": "GovernorBravoDelegateStorageV1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 2488, + "name": "votingDelay", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "2749:23:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2487, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2749:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2490, + "name": "votingPeriod", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "2843:24:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2489, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2843:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2492, + "name": "proposalThreshold", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "2961:29:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2491, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2961:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2494, + "name": "initialProposalId", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3047:29:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2493, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3047:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2496, + "name": "proposalCount", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3129:25:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2495, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3129:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2498, + "name": "timelock", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3223:33:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + }, + "typeName": { + "contractScope": null, + "id": 2497, + "name": "TimelockInterface", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2626, + "src": "3223:17:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2500, + "name": "comp", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3324:25:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CompInterface_$2636", + "typeString": "contract CompInterface" + }, + "typeName": { + "contractScope": null, + "id": 2499, + "name": "CompInterface", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2636, + "src": "3324:13:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CompInterface_$2636", + "typeString": "contract CompInterface" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2504, + "name": "proposals", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3423:43:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$2545_storage_$", + "typeString": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)" + }, + "typeName": { + "id": 2503, + "keyType": { + "id": 2501, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3432:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "3423:26:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$2545_storage_$", + "typeString": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)" + }, + "valueType": { + "contractScope": null, + "id": 2502, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2545, + "src": "3440:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2508, + "name": "latestProposalIds", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3527:50:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 2507, + "keyType": { + "id": 2505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3536:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3527:25:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 2506, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3547:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "canonicalName": "GovernorBravoDelegateStorageV1.Proposal", + "id": 2545, + "members": [ + { + "constant": false, + "id": 2510, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "3667:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2509, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3667:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2512, + "name": "proposer", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "3729:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3729:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2514, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "3868:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2513, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3868:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2517, + "name": "targets", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "3965:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2515, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3965:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2516, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3965:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2520, + "name": "values", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4094:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2518, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4094:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2519, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4094:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2523, + "name": "signatures", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4191:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 2521, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4191:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 2522, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4191:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2526, + "name": "calldatas", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4296:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 2524, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4296:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 2525, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4296:7:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2528, + "name": "startBlock", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4432:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2527, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4432:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2530, + "name": "endBlock", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4549:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2529, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4549:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2532, + "name": "forVotes", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4643:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2531, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4643:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2534, + "name": "againstVotes", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4742:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2533, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4742:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2536, + "name": "abstainVotes", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4847:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2535, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4847:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2538, + "name": "canceled", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4947:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2537, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4947:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2540, + "name": "executed", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "5043:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5043:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2544, + "name": "receipts", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "5136:37:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Receipt_$2552_storage_$", + "typeString": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)" + }, + "typeName": { + "id": 2543, + "keyType": { + "id": 2541, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5145:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5136:28:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Receipt_$2552_storage_$", + "typeString": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)" + }, + "valueType": { + "contractScope": null, + "id": 2542, + "name": "Receipt", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2552, + "src": "5156:7:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$2552_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Receipt" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Proposal", + "nodeType": "StructDefinition", + "scope": 2562, + "src": "3585:1595:3", + "visibility": "public" + }, + { + "canonicalName": "GovernorBravoDelegateStorageV1.Receipt", + "id": 2552, + "members": [ + { + "constant": false, + "id": 2547, + "name": "hasVoted", + "nodeType": "VariableDeclaration", + "scope": 2552, + "src": "5317:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2546, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5317:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2549, + "name": "support", + "nodeType": "VariableDeclaration", + "scope": 2552, + "src": "5420:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2548, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5420:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2551, + "name": "votes", + "nodeType": "VariableDeclaration", + "scope": 2552, + "src": "5515:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 2550, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "5515:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Receipt", + "nodeType": "StructDefinition", + "scope": 2562, + "src": "5236:298:3", + "visibility": "public" + }, + { + "canonicalName": "GovernorBravoDelegateStorageV1.ProposalState", + "id": 2561, + "members": [ + { + "id": 2553, + "name": "Pending", + "nodeType": "EnumValue", + "src": "5627:7:3" + }, + { + "id": 2554, + "name": "Active", + "nodeType": "EnumValue", + "src": "5644:6:3" + }, + { + "id": 2555, + "name": "Canceled", + "nodeType": "EnumValue", + "src": "5660:8:3" + }, + { + "id": 2556, + "name": "Defeated", + "nodeType": "EnumValue", + "src": "5678:8:3" + }, + { + "id": 2557, + "name": "Succeeded", + "nodeType": "EnumValue", + "src": "5696:9:3" + }, + { + "id": 2558, + "name": "Queued", + "nodeType": "EnumValue", + "src": "5715:6:3" + }, + { + "id": 2559, + "name": "Expired", + "nodeType": "EnumValue", + "src": "5731:7:3" + }, + { + "id": 2560, + "name": "Executed", + "nodeType": "EnumValue", + "src": "5748:8:3" + } + ], + "name": "ProposalState", + "nodeType": "EnumDefinition", + "src": "5598:164:3" + } + ], + "scope": 2637, + "src": "2574:3190:3" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 2626, + "linearizedBaseContracts": [ + 2626 + ], + "name": "TimelockInterface", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 2567, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "delay", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2563, + "nodeType": "ParameterList", + "parameters": [], + "src": "5814:2:3" + }, + "returnParameters": { + "id": 2566, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2565, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2567, + "src": "5840:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2564, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5840:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5839:6:3" + }, + "scope": 2626, + "src": "5800:46:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2572, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "GRACE_PERIOD", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2568, + "nodeType": "ParameterList", + "parameters": [], + "src": "5872:2:3" + }, + "returnParameters": { + "id": 2571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2570, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2572, + "src": "5898:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2569, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5898:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5897:6:3" + }, + "scope": 2626, + "src": "5851:53:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2575, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "acceptAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2573, + "nodeType": "ParameterList", + "parameters": [], + "src": "5929:2:3" + }, + "returnParameters": { + "id": 2574, + "nodeType": "ParameterList", + "parameters": [], + "src": "5940:0:3" + }, + "scope": 2626, + "src": "5909:32:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2582, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "queuedTransactions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2577, + "name": "hash", + "nodeType": "VariableDeclaration", + "scope": 2582, + "src": "5974:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2576, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5974:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5973:14:3" + }, + "returnParameters": { + "id": 2581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2580, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2582, + "src": "6011:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2579, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6011:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6010:6:3" + }, + "scope": 2626, + "src": "5946:71:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2597, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "queueTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2584, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6048:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6048:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2586, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6064:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2585, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6064:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2588, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6076:25:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2587, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6076:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2590, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6103:19:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2589, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6103:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2592, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6124:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2591, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6124:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6047:86:3" + }, + "returnParameters": { + "id": 2596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2595, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6152:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2594, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6152:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6151:9:3" + }, + "scope": 2626, + "src": "6022:139:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2610, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "cancelTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2599, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6193:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2598, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6193:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2601, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6209:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2600, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6209:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2603, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6221:25:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2602, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6221:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2605, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6248:19:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2604, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6248:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2607, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6269:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2606, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6269:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6192:86:3" + }, + "returnParameters": { + "id": 2609, + "nodeType": "ParameterList", + "parameters": [], + "src": "6287:0:3" + }, + "scope": 2626, + "src": "6166:122:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2625, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "executeTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2612, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6321:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2611, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6321:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2614, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6337:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2613, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6337:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2616, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6349:25:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2615, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6349:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2618, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6376:19:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2617, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6376:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2620, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6397:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2619, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6397:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6320:86:3" + }, + "returnParameters": { + "id": 2624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2623, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6433:12:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2622, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6433:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6432:14:3" + }, + "scope": 2626, + "src": "6293:154:3", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2637, + "src": "5766:683:3" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 2636, + "linearizedBaseContracts": [ + 2636 + ], + "name": "CompInterface", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 2635, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPriorVotes", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2631, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2628, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 2635, + "src": "6504:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2627, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6504:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2630, + "name": "blockNumber", + "nodeType": "VariableDeclaration", + "scope": 2635, + "src": "6521:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2629, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6521:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6503:35:3" + }, + "returnParameters": { + "id": 2634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2633, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2635, + "src": "6562:6:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 2632, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "6562:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6561:8:3" + }, + "scope": 2636, + "src": "6481:89:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2637, + "src": "6451:121:3" + } + ], + "src": "0:6573:3" + }, + "legacyAST": { + "attributes": { + "absolutePath": "project:/contracts/GovernorBravoInterfaces.sol", + "exportedSymbols": { + "CompInterface": [ + 2636 + ], + "GovernorBravoDelegateStorageV1": [ + 2562 + ], + "GovernorBravoDelegatorStorage": [ + 2484 + ], + "GovernorBravoEvents": [ + 2477 + ], + "TimelockInterface": [ + 2626 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.5", + ".16" + ] + }, + "id": 2389, + "name": "PragmaDirective", + "src": "0:24:3" + }, + { + "attributes": { + "literals": [ + "experimental", + "ABIEncoderV2" + ] + }, + "id": 2390, + "name": "PragmaDirective", + "src": "25:33:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2477 + ], + "name": "GovernorBravoEvents", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a new proposal is created", + "name": "ProposalCreated" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "id", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2391, + "name": "ElementaryTypeName", + "src": "182:4:3" + } + ], + "id": 2392, + "name": "VariableDeclaration", + "src": "182:7:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "proposer", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2393, + "name": "ElementaryTypeName", + "src": "191:7:3" + } + ], + "id": 2394, + "name": "VariableDeclaration", + "src": "191:16:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "targets", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "address[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "address[]" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2395, + "name": "ElementaryTypeName", + "src": "209:7:3" + } + ], + "id": 2396, + "name": "ArrayTypeName", + "src": "209:9:3" + } + ], + "id": 2397, + "name": "VariableDeclaration", + "src": "209:17:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "values", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "uint256[]" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2398, + "name": "ElementaryTypeName", + "src": "228:4:3" + } + ], + "id": 2399, + "name": "ArrayTypeName", + "src": "228:6:3" + } + ], + "id": 2400, + "name": "VariableDeclaration", + "src": "228:13:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "signatures", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "string[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "string[]" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2401, + "name": "ElementaryTypeName", + "src": "243:6:3" + } + ], + "id": 2402, + "name": "ArrayTypeName", + "src": "243:8:3" + } + ], + "id": 2403, + "name": "VariableDeclaration", + "src": "243:19:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "calldatas", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "bytes[]" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2404, + "name": "ElementaryTypeName", + "src": "264:5:3" + } + ], + "id": 2405, + "name": "ArrayTypeName", + "src": "264:7:3" + } + ], + "id": 2406, + "name": "VariableDeclaration", + "src": "264:17:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "startBlock", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2407, + "name": "ElementaryTypeName", + "src": "283:4:3" + } + ], + "id": 2408, + "name": "VariableDeclaration", + "src": "283:15:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "endBlock", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2409, + "name": "ElementaryTypeName", + "src": "300:4:3" + } + ], + "id": 2410, + "name": "VariableDeclaration", + "src": "300:13:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "description", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2411, + "name": "ElementaryTypeName", + "src": "315:6:3" + } + ], + "id": 2412, + "name": "VariableDeclaration", + "src": "315:18:3" + } + ], + "id": 2413, + "name": "ParameterList", + "src": "181:153:3" + } + ], + "id": 2414, + "name": "EventDefinition", + "src": "160:175:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a vote has been cast on a proposal\n @param voter The address which casted a vote\n @param proposalId The proposal id which was voted on\n @param support Support value for the vote. 0=against, 1=for, 2=abstain\n @param votes Number of votes which were cast by the voter\n @param reason The reason given for the vote by the voter", + "name": "VoteCast" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "voter", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2415, + "name": "ElementaryTypeName", + "src": "753:7:3" + } + ], + "id": 2416, + "name": "VariableDeclaration", + "src": "753:21:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "proposalId", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2417, + "name": "ElementaryTypeName", + "src": "776:4:3" + } + ], + "id": 2418, + "name": "VariableDeclaration", + "src": "776:15:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "support", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 2419, + "name": "ElementaryTypeName", + "src": "793:5:3" + } + ], + "id": 2420, + "name": "VariableDeclaration", + "src": "793:13:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "votes", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2421, + "name": "ElementaryTypeName", + "src": "808:4:3" + } + ], + "id": 2422, + "name": "VariableDeclaration", + "src": "808:10:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "reason", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2423, + "name": "ElementaryTypeName", + "src": "820:6:3" + } + ], + "id": 2424, + "name": "VariableDeclaration", + "src": "820:13:3" + } + ], + "id": 2425, + "name": "ParameterList", + "src": "752:82:3" + } + ], + "id": 2426, + "name": "EventDefinition", + "src": "738:97:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been canceled", + "name": "ProposalCanceled" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "id", + "scope": 2430, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2427, + "name": "ElementaryTypeName", + "src": "931:4:3" + } + ], + "id": 2428, + "name": "VariableDeclaration", + "src": "931:7:3" + } + ], + "id": 2429, + "name": "ParameterList", + "src": "930:9:3" + } + ], + "id": 2430, + "name": "EventDefinition", + "src": "908:32:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been queued in the Timelock", + "name": "ProposalQueued" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "id", + "scope": 2436, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2431, + "name": "ElementaryTypeName", + "src": "1048:4:3" + } + ], + "id": 2432, + "name": "VariableDeclaration", + "src": "1048:7:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "eta", + "scope": 2436, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2433, + "name": "ElementaryTypeName", + "src": "1057:4:3" + } + ], + "id": 2434, + "name": "VariableDeclaration", + "src": "1057:8:3" + } + ], + "id": 2435, + "name": "ParameterList", + "src": "1047:19:3" + } + ], + "id": 2436, + "name": "EventDefinition", + "src": "1027:40:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been executed in the Timelock", + "name": "ProposalExecuted" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "id", + "scope": 2440, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2437, + "name": "ElementaryTypeName", + "src": "1179:4:3" + } + ], + "id": 2438, + "name": "VariableDeclaration", + "src": "1179:7:3" + } + ], + "id": 2439, + "name": "ParameterList", + "src": "1178:9:3" + } + ], + "id": 2440, + "name": "EventDefinition", + "src": "1156:32:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when the voting delay is set", + "name": "VotingDelaySet" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldVotingDelay", + "scope": 2446, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2441, + "name": "ElementaryTypeName", + "src": "1277:4:3" + } + ], + "id": 2442, + "name": "VariableDeclaration", + "src": "1277:19:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newVotingDelay", + "scope": 2446, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2443, + "name": "ElementaryTypeName", + "src": "1298:4:3" + } + ], + "id": 2444, + "name": "VariableDeclaration", + "src": "1298:19:3" + } + ], + "id": 2445, + "name": "ParameterList", + "src": "1276:42:3" + } + ], + "id": 2446, + "name": "EventDefinition", + "src": "1256:63:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when the voting period is set", + "name": "VotingPeriodSet" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldVotingPeriod", + "scope": 2452, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2447, + "name": "ElementaryTypeName", + "src": "1410:4:3" + } + ], + "id": 2448, + "name": "VariableDeclaration", + "src": "1410:20:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newVotingPeriod", + "scope": 2452, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2449, + "name": "ElementaryTypeName", + "src": "1432:4:3" + } + ], + "id": 2450, + "name": "VariableDeclaration", + "src": "1432:20:3" + } + ], + "id": 2451, + "name": "ParameterList", + "src": "1409:44:3" + } + ], + "id": 2452, + "name": "EventDefinition", + "src": "1388:66:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice Emitted when implementation is changed", + "name": "NewImplementation" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldImplementation", + "scope": 2458, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2453, + "name": "ElementaryTypeName", + "src": "1539:7:3" + } + ], + "id": 2454, + "name": "VariableDeclaration", + "src": "1539:25:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newImplementation", + "scope": 2458, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2455, + "name": "ElementaryTypeName", + "src": "1566:7:3" + } + ], + "id": 2456, + "name": "VariableDeclaration", + "src": "1566:25:3" + } + ], + "id": 2457, + "name": "ParameterList", + "src": "1538:54:3" + } + ], + "id": 2458, + "name": "EventDefinition", + "src": "1515:78:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice Emitted when proposal threshold is set", + "name": "ProposalThresholdSet" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldProposalThreshold", + "scope": 2464, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2459, + "name": "ElementaryTypeName", + "src": "1681:4:3" + } + ], + "id": 2460, + "name": "VariableDeclaration", + "src": "1681:25:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newProposalThreshold", + "scope": 2464, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2461, + "name": "ElementaryTypeName", + "src": "1708:4:3" + } + ], + "id": 2462, + "name": "VariableDeclaration", + "src": "1708:25:3" + } + ], + "id": 2463, + "name": "ParameterList", + "src": "1680:54:3" + } + ], + "id": 2464, + "name": "EventDefinition", + "src": "1654:81:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice Emitted when pendingAdmin is changed", + "name": "NewPendingAdmin" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldPendingAdmin", + "scope": 2470, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2465, + "name": "ElementaryTypeName", + "src": "1816:7:3" + } + ], + "id": 2466, + "name": "VariableDeclaration", + "src": "1816:23:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newPendingAdmin", + "scope": 2470, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2467, + "name": "ElementaryTypeName", + "src": "1841:7:3" + } + ], + "id": 2468, + "name": "VariableDeclaration", + "src": "1841:23:3" + } + ], + "id": 2469, + "name": "ParameterList", + "src": "1815:50:3" + } + ], + "id": 2470, + "name": "EventDefinition", + "src": "1794:72:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice Emitted when pendingAdmin is accepted, which means admin is updated", + "name": "NewAdmin" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldAdmin", + "scope": 2476, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2471, + "name": "ElementaryTypeName", + "src": "1971:7:3" + } + ], + "id": 2472, + "name": "VariableDeclaration", + "src": "1971:16:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newAdmin", + "scope": 2476, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2473, + "name": "ElementaryTypeName", + "src": "1989:7:3" + } + ], + "id": 2474, + "name": "VariableDeclaration", + "src": "1989:16:3" + } + ], + "id": 2475, + "name": "ParameterList", + "src": "1970:36:3" + } + ], + "id": 2476, + "name": "EventDefinition", + "src": "1956:51:3" + } + ], + "id": 2477, + "name": "ContractDefinition", + "src": "61:1948:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2484 + ], + "name": "GovernorBravoDelegatorStorage", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "admin", + "scope": 2484, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2478, + "name": "ElementaryTypeName", + "src": "2104:7:3" + } + ], + "id": 2479, + "name": "VariableDeclaration", + "src": "2104:20:3" + }, + { + "attributes": { + "constant": false, + "name": "pendingAdmin", + "scope": 2484, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2480, + "name": "ElementaryTypeName", + "src": "2187:7:3" + } + ], + "id": 2481, + "name": "VariableDeclaration", + "src": "2187:27:3" + }, + { + "attributes": { + "constant": false, + "name": "implementation", + "scope": 2484, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2482, + "name": "ElementaryTypeName", + "src": "2263:7:3" + } + ], + "id": 2483, + "name": "VariableDeclaration", + "src": "2263:29:3" + } + ], + "id": 2484, + "name": "ContractDefinition", + "src": "2011:284:3" + }, + { + "attributes": { + "contractDependencies": [ + 2484 + ], + "contractKind": "contract", + "documentation": "@title Storage for Governor Bravo Delegate\n@notice For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\ncontract which implements GovernorBravoDelegateStorageV1 and following the naming convention\nGovernorBravoDelegateStorageVX.", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2562, + 2484 + ], + "name": "GovernorBravoDelegateStorageV1", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "GovernorBravoDelegatorStorage", + "referencedDeclaration": 2484, + "type": "contract GovernorBravoDelegatorStorage" + }, + "id": 2485, + "name": "UserDefinedTypeName", + "src": "2617:29:3" + } + ], + "id": 2486, + "name": "InheritanceSpecifier", + "src": "2617:29:3" + }, + { + "attributes": { + "constant": false, + "name": "votingDelay", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2487, + "name": "ElementaryTypeName", + "src": "2749:4:3" + } + ], + "id": 2488, + "name": "VariableDeclaration", + "src": "2749:23:3" + }, + { + "attributes": { + "constant": false, + "name": "votingPeriod", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2489, + "name": "ElementaryTypeName", + "src": "2843:4:3" + } + ], + "id": 2490, + "name": "VariableDeclaration", + "src": "2843:24:3" + }, + { + "attributes": { + "constant": false, + "name": "proposalThreshold", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2491, + "name": "ElementaryTypeName", + "src": "2961:4:3" + } + ], + "id": 2492, + "name": "VariableDeclaration", + "src": "2961:29:3" + }, + { + "attributes": { + "constant": false, + "name": "initialProposalId", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2493, + "name": "ElementaryTypeName", + "src": "3047:4:3" + } + ], + "id": 2494, + "name": "VariableDeclaration", + "src": "3047:29:3" + }, + { + "attributes": { + "constant": false, + "name": "proposalCount", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2495, + "name": "ElementaryTypeName", + "src": "3129:4:3" + } + ], + "id": 2496, + "name": "VariableDeclaration", + "src": "3129:25:3" + }, + { + "attributes": { + "constant": false, + "name": "timelock", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "contract TimelockInterface", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "TimelockInterface", + "referencedDeclaration": 2626, + "type": "contract TimelockInterface" + }, + "id": 2497, + "name": "UserDefinedTypeName", + "src": "3223:17:3" + } + ], + "id": 2498, + "name": "VariableDeclaration", + "src": "3223:33:3" + }, + { + "attributes": { + "constant": false, + "name": "comp", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "contract CompInterface", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "CompInterface", + "referencedDeclaration": 2636, + "type": "contract CompInterface" + }, + "id": 2499, + "name": "UserDefinedTypeName", + "src": "3324:13:3" + } + ], + "id": 2500, + "name": "VariableDeclaration", + "src": "3324:25:3" + }, + { + "attributes": { + "constant": false, + "name": "proposals", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2501, + "name": "ElementaryTypeName", + "src": "3432:4:3" + }, + { + "attributes": { + "contractScope": null, + "name": "Proposal", + "referencedDeclaration": 2545, + "type": "struct GovernorBravoDelegateStorageV1.Proposal" + }, + "id": 2502, + "name": "UserDefinedTypeName", + "src": "3440:8:3" + } + ], + "id": 2503, + "name": "Mapping", + "src": "3423:26:3" + } + ], + "id": 2504, + "name": "VariableDeclaration", + "src": "3423:43:3" + }, + { + "attributes": { + "constant": false, + "name": "latestProposalIds", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => uint256)", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2505, + "name": "ElementaryTypeName", + "src": "3536:7:3" + }, + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2506, + "name": "ElementaryTypeName", + "src": "3547:4:3" + } + ], + "id": 2507, + "name": "Mapping", + "src": "3527:25:3" + } + ], + "id": 2508, + "name": "VariableDeclaration", + "src": "3527:50:3" + }, + { + "attributes": { + "canonicalName": "GovernorBravoDelegateStorageV1.Proposal", + "name": "Proposal", + "scope": 2562, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "id", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2509, + "name": "ElementaryTypeName", + "src": "3667:4:3" + } + ], + "id": 2510, + "name": "VariableDeclaration", + "src": "3667:7:3" + }, + { + "attributes": { + "constant": false, + "name": "proposer", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2511, + "name": "ElementaryTypeName", + "src": "3729:7:3" + } + ], + "id": 2512, + "name": "VariableDeclaration", + "src": "3729:16:3" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2513, + "name": "ElementaryTypeName", + "src": "3868:4:3" + } + ], + "id": 2514, + "name": "VariableDeclaration", + "src": "3868:8:3" + }, + { + "attributes": { + "constant": false, + "name": "targets", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "address[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "address[]" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2515, + "name": "ElementaryTypeName", + "src": "3965:7:3" + } + ], + "id": 2516, + "name": "ArrayTypeName", + "src": "3965:9:3" + } + ], + "id": 2517, + "name": "VariableDeclaration", + "src": "3965:17:3" + }, + { + "attributes": { + "constant": false, + "name": "values", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "uint256[]" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2518, + "name": "ElementaryTypeName", + "src": "4094:4:3" + } + ], + "id": 2519, + "name": "ArrayTypeName", + "src": "4094:6:3" + } + ], + "id": 2520, + "name": "VariableDeclaration", + "src": "4094:13:3" + }, + { + "attributes": { + "constant": false, + "name": "signatures", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "string[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "string[]" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2521, + "name": "ElementaryTypeName", + "src": "4191:6:3" + } + ], + "id": 2522, + "name": "ArrayTypeName", + "src": "4191:8:3" + } + ], + "id": 2523, + "name": "VariableDeclaration", + "src": "4191:19:3" + }, + { + "attributes": { + "constant": false, + "name": "calldatas", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "bytes[]" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2524, + "name": "ElementaryTypeName", + "src": "4296:5:3" + } + ], + "id": 2525, + "name": "ArrayTypeName", + "src": "4296:7:3" + } + ], + "id": 2526, + "name": "VariableDeclaration", + "src": "4296:17:3" + }, + { + "attributes": { + "constant": false, + "name": "startBlock", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2527, + "name": "ElementaryTypeName", + "src": "4432:4:3" + } + ], + "id": 2528, + "name": "VariableDeclaration", + "src": "4432:15:3" + }, + { + "attributes": { + "constant": false, + "name": "endBlock", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2529, + "name": "ElementaryTypeName", + "src": "4549:4:3" + } + ], + "id": 2530, + "name": "VariableDeclaration", + "src": "4549:13:3" + }, + { + "attributes": { + "constant": false, + "name": "forVotes", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2531, + "name": "ElementaryTypeName", + "src": "4643:4:3" + } + ], + "id": 2532, + "name": "VariableDeclaration", + "src": "4643:13:3" + }, + { + "attributes": { + "constant": false, + "name": "againstVotes", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2533, + "name": "ElementaryTypeName", + "src": "4742:4:3" + } + ], + "id": 2534, + "name": "VariableDeclaration", + "src": "4742:17:3" + }, + { + "attributes": { + "constant": false, + "name": "abstainVotes", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2535, + "name": "ElementaryTypeName", + "src": "4847:4:3" + } + ], + "id": 2536, + "name": "VariableDeclaration", + "src": "4847:17:3" + }, + { + "attributes": { + "constant": false, + "name": "canceled", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2537, + "name": "ElementaryTypeName", + "src": "4947:4:3" + } + ], + "id": 2538, + "name": "VariableDeclaration", + "src": "4947:13:3" + }, + { + "attributes": { + "constant": false, + "name": "executed", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2539, + "name": "ElementaryTypeName", + "src": "5043:4:3" + } + ], + "id": 2540, + "name": "VariableDeclaration", + "src": "5043:13:3" + }, + { + "attributes": { + "constant": false, + "name": "receipts", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2541, + "name": "ElementaryTypeName", + "src": "5145:7:3" + }, + { + "attributes": { + "contractScope": null, + "name": "Receipt", + "referencedDeclaration": 2552, + "type": "struct GovernorBravoDelegateStorageV1.Receipt" + }, + "id": 2542, + "name": "UserDefinedTypeName", + "src": "5156:7:3" + } + ], + "id": 2543, + "name": "Mapping", + "src": "5136:28:3" + } + ], + "id": 2544, + "name": "VariableDeclaration", + "src": "5136:37:3" + } + ], + "id": 2545, + "name": "StructDefinition", + "src": "3585:1595:3" + }, + { + "attributes": { + "canonicalName": "GovernorBravoDelegateStorageV1.Receipt", + "name": "Receipt", + "scope": 2562, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "hasVoted", + "scope": 2552, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2546, + "name": "ElementaryTypeName", + "src": "5317:4:3" + } + ], + "id": 2547, + "name": "VariableDeclaration", + "src": "5317:13:3" + }, + { + "attributes": { + "constant": false, + "name": "support", + "scope": 2552, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 2548, + "name": "ElementaryTypeName", + "src": "5420:5:3" + } + ], + "id": 2549, + "name": "VariableDeclaration", + "src": "5420:13:3" + }, + { + "attributes": { + "constant": false, + "name": "votes", + "scope": 2552, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 2550, + "name": "ElementaryTypeName", + "src": "5515:6:3" + } + ], + "id": 2551, + "name": "VariableDeclaration", + "src": "5515:12:3" + } + ], + "id": 2552, + "name": "StructDefinition", + "src": "5236:298:3" + }, + { + "attributes": { + "canonicalName": "GovernorBravoDelegateStorageV1.ProposalState", + "name": "ProposalState" + }, + "children": [ + { + "attributes": { + "name": "Pending" + }, + "id": 2553, + "name": "EnumValue", + "src": "5627:7:3" + }, + { + "attributes": { + "name": "Active" + }, + "id": 2554, + "name": "EnumValue", + "src": "5644:6:3" + }, + { + "attributes": { + "name": "Canceled" + }, + "id": 2555, + "name": "EnumValue", + "src": "5660:8:3" + }, + { + "attributes": { + "name": "Defeated" + }, + "id": 2556, + "name": "EnumValue", + "src": "5678:8:3" + }, + { + "attributes": { + "name": "Succeeded" + }, + "id": 2557, + "name": "EnumValue", + "src": "5696:9:3" + }, + { + "attributes": { + "name": "Queued" + }, + "id": 2558, + "name": "EnumValue", + "src": "5715:6:3" + }, + { + "attributes": { + "name": "Expired" + }, + "id": 2559, + "name": "EnumValue", + "src": "5731:7:3" + }, + { + "attributes": { + "name": "Executed" + }, + "id": 2560, + "name": "EnumValue", + "src": "5748:8:3" + } + ], + "id": 2561, + "name": "EnumDefinition", + "src": "5598:164:3" + } + ], + "id": 2562, + "name": "ContractDefinition", + "src": "2574:3190:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 2626 + ], + "name": "TimelockInterface", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "delay", + "scope": 2626, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2563, + "name": "ParameterList", + "src": "5814:2:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2567, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2564, + "name": "ElementaryTypeName", + "src": "5840:4:3" + } + ], + "id": 2565, + "name": "VariableDeclaration", + "src": "5840:4:3" + } + ], + "id": 2566, + "name": "ParameterList", + "src": "5839:6:3" + } + ], + "id": 2567, + "name": "FunctionDefinition", + "src": "5800:46:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "GRACE_PERIOD", + "scope": 2626, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2568, + "name": "ParameterList", + "src": "5872:2:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2572, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2569, + "name": "ElementaryTypeName", + "src": "5898:4:3" + } + ], + "id": 2570, + "name": "VariableDeclaration", + "src": "5898:4:3" + } + ], + "id": 2571, + "name": "ParameterList", + "src": "5897:6:3" + } + ], + "id": 2572, + "name": "FunctionDefinition", + "src": "5851:53:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "acceptAdmin", + "scope": 2626, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2573, + "name": "ParameterList", + "src": "5929:2:3" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2574, + "name": "ParameterList", + "src": "5940:0:3" + } + ], + "id": 2575, + "name": "FunctionDefinition", + "src": "5909:32:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "queuedTransactions", + "scope": 2626, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "hash", + "scope": 2582, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2576, + "name": "ElementaryTypeName", + "src": "5974:7:3" + } + ], + "id": 2577, + "name": "VariableDeclaration", + "src": "5974:12:3" + } + ], + "id": 2578, + "name": "ParameterList", + "src": "5973:14:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2582, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2579, + "name": "ElementaryTypeName", + "src": "6011:4:3" + } + ], + "id": 2580, + "name": "VariableDeclaration", + "src": "6011:4:3" + } + ], + "id": 2581, + "name": "ParameterList", + "src": "6010:6:3" + } + ], + "id": 2582, + "name": "FunctionDefinition", + "src": "5946:71:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "queueTransaction", + "scope": 2626, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 2597, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2583, + "name": "ElementaryTypeName", + "src": "6048:7:3" + } + ], + "id": 2584, + "name": "VariableDeclaration", + "src": "6048:14:3" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 2597, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2585, + "name": "ElementaryTypeName", + "src": "6064:4:3" + } + ], + "id": 2586, + "name": "VariableDeclaration", + "src": "6064:10:3" + }, + { + "attributes": { + "constant": false, + "name": "signature", + "scope": 2597, + "stateVariable": false, + "storageLocation": "calldata", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2587, + "name": "ElementaryTypeName", + "src": "6076:6:3" + } + ], + "id": 2588, + "name": "VariableDeclaration", + "src": "6076:25:3" + }, + { + "attributes": { + "constant": false, + "name": "data", + "scope": 2597, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2589, + "name": "ElementaryTypeName", + "src": "6103:5:3" + } + ], + "id": 2590, + "name": "VariableDeclaration", + "src": "6103:19:3" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 2597, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2591, + "name": "ElementaryTypeName", + "src": "6124:4:3" + } + ], + "id": 2592, + "name": "VariableDeclaration", + "src": "6124:8:3" + } + ], + "id": 2593, + "name": "ParameterList", + "src": "6047:86:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2597, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2594, + "name": "ElementaryTypeName", + "src": "6152:7:3" + } + ], + "id": 2595, + "name": "VariableDeclaration", + "src": "6152:7:3" + } + ], + "id": 2596, + "name": "ParameterList", + "src": "6151:9:3" + } + ], + "id": 2597, + "name": "FunctionDefinition", + "src": "6022:139:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "cancelTransaction", + "scope": 2626, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 2610, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2598, + "name": "ElementaryTypeName", + "src": "6193:7:3" + } + ], + "id": 2599, + "name": "VariableDeclaration", + "src": "6193:14:3" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 2610, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2600, + "name": "ElementaryTypeName", + "src": "6209:4:3" + } + ], + "id": 2601, + "name": "VariableDeclaration", + "src": "6209:10:3" + }, + { + "attributes": { + "constant": false, + "name": "signature", + "scope": 2610, + "stateVariable": false, + "storageLocation": "calldata", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2602, + "name": "ElementaryTypeName", + "src": "6221:6:3" + } + ], + "id": 2603, + "name": "VariableDeclaration", + "src": "6221:25:3" + }, + { + "attributes": { + "constant": false, + "name": "data", + "scope": 2610, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2604, + "name": "ElementaryTypeName", + "src": "6248:5:3" + } + ], + "id": 2605, + "name": "VariableDeclaration", + "src": "6248:19:3" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 2610, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2606, + "name": "ElementaryTypeName", + "src": "6269:4:3" + } + ], + "id": 2607, + "name": "VariableDeclaration", + "src": "6269:8:3" + } + ], + "id": 2608, + "name": "ParameterList", + "src": "6192:86:3" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2609, + "name": "ParameterList", + "src": "6287:0:3" + } + ], + "id": 2610, + "name": "FunctionDefinition", + "src": "6166:122:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "executeTransaction", + "scope": 2626, + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 2625, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2611, + "name": "ElementaryTypeName", + "src": "6321:7:3" + } + ], + "id": 2612, + "name": "VariableDeclaration", + "src": "6321:14:3" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 2625, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2613, + "name": "ElementaryTypeName", + "src": "6337:4:3" + } + ], + "id": 2614, + "name": "VariableDeclaration", + "src": "6337:10:3" + }, + { + "attributes": { + "constant": false, + "name": "signature", + "scope": 2625, + "stateVariable": false, + "storageLocation": "calldata", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2615, + "name": "ElementaryTypeName", + "src": "6349:6:3" + } + ], + "id": 2616, + "name": "VariableDeclaration", + "src": "6349:25:3" + }, + { + "attributes": { + "constant": false, + "name": "data", + "scope": 2625, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2617, + "name": "ElementaryTypeName", + "src": "6376:5:3" + } + ], + "id": 2618, + "name": "VariableDeclaration", + "src": "6376:19:3" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 2625, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2619, + "name": "ElementaryTypeName", + "src": "6397:4:3" + } + ], + "id": 2620, + "name": "VariableDeclaration", + "src": "6397:8:3" + } + ], + "id": 2621, + "name": "ParameterList", + "src": "6320:86:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2625, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2622, + "name": "ElementaryTypeName", + "src": "6433:5:3" + } + ], + "id": 2623, + "name": "VariableDeclaration", + "src": "6433:12:3" + } + ], + "id": 2624, + "name": "ParameterList", + "src": "6432:14:3" + } + ], + "id": 2625, + "name": "FunctionDefinition", + "src": "6293:154:3" + } + ], + "id": 2626, + "name": "ContractDefinition", + "src": "5766:683:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 2636 + ], + "name": "CompInterface", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getPriorVotes", + "scope": 2636, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "account", + "scope": 2635, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2627, + "name": "ElementaryTypeName", + "src": "6504:7:3" + } + ], + "id": 2628, + "name": "VariableDeclaration", + "src": "6504:15:3" + }, + { + "attributes": { + "constant": false, + "name": "blockNumber", + "scope": 2635, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2629, + "name": "ElementaryTypeName", + "src": "6521:4:3" + } + ], + "id": 2630, + "name": "VariableDeclaration", + "src": "6521:16:3" + } + ], + "id": 2631, + "name": "ParameterList", + "src": "6503:35:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2635, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 2632, + "name": "ElementaryTypeName", + "src": "6562:6:3" + } + ], + "id": 2633, + "name": "VariableDeclaration", + "src": "6562:6:3" + } + ], + "id": 2634, + "name": "ParameterList", + "src": "6561:8:3" + } + ], + "id": 2635, + "name": "FunctionDefinition", + "src": "6481:89:3" + } + ], + "id": 2636, + "name": "ContractDefinition", + "src": "6451:121:3" + } + ], + "id": 2637, + "name": "SourceUnit", + "src": "0:6573:3" + }, + "compiler": { + "name": "solc", + "version": "0.5.16" + }, + "networks": {}, + "schemaVersion": "3.4.3", + "updatedAt": "2021-09-05T21:45:41.187Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/omgx_examples/compound-simple/build-ovm/SafeMath.json b/omgx_examples/compound-simple/build-ovm/SafeMath.json new file mode 100644 index 000000000000..a159d480e294 --- /dev/null +++ b/omgx_examples/compound-simple/build-ovm/SafeMath.json @@ -0,0 +1,6737 @@ +{ + "contractName": "SafeMath", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.5.16-develop.2020.11.10+ovm+commit.00cdd204\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations with added overflow checks. * Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. * Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"project:/contracts/SafeMath.sol\":{\"keccak256\":\"0x5082b717b4b08c7c2068666edce6f70363eeacee07777086ed8eef9353c39e2c\",\"urls\":[\"bzz-raw://02764f2c13cd5c53dd839d7554cfd6a668e45aff19e708b496896f181380cd7c\",\"dweb:/ipfs/QmcaGAZi7dQpCvmzKwzybQBYfyvFGdqHhXXXbJncTMewG7\"]}},\"version\":1}", + "bytecode": "0x60e661007d600b82828239805160001a60731461001857fe5b5a63996d79a5598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051925060005b604081101561006e57600082820152602001610057565b505050600052607381538281f3fe7300000000000000000000000000000000000000005a63996d79a5598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051925060005b60408110156068576000828201526020016053565b505050146080604052600080607a607d565b50505b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101560b3578086015182820160400152602001609a565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b50505056", + "deployedBytecode": "0x7300000000000000000000000000000000000000005a63996d79a5598160e01b8152602081600483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c528051925060005b60408110156068576000828201526020016053565b505050146080604052600080607a607d565b50505b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101560b3578086015182820160400152602001609a565b506020828760640184336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c5250505056", + "sourceMap": "721:5690:4:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;20:10;50:7;143:8;138:3;134:18;123:9;116:37;222:2;211:9;208:1;197:9;192:33;;;;;;;;;;;;;;;;;;;;;;;;;;241:9;235:16;229:22;;491:1;474:100;503:4;498:3;495:13;474:100;;;568:1;547:19;;;540:30;527:4;518:14;474:100;;;478:16;0:577;;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", + "deployedSourceMap": "721:5690:4:-;;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;222:2;211:9;208:1;197:9;192:33;;;;;;;;;;;;;;;;;;;;;;;;;;241:9;235:16;229:22;;491:1;474:100;503:4;498:3;495:13;474:100;;;568:1;547:19;;;540:30;527:4;518:14;474:100;;;478:16;0:577;;721:5690:4;;;;;;;;:::i;:::-;;;;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;242:1;231:9;227:17;295:4;284:9;277:23;362:6;355:4;344:9;340:20;333:36;424:1;407:143;436:6;431:3;428:15;407:143;;;536:3;528:6;524:16;518:23;486:30;;;505:4;486:30;479:63;462:4;453:14;407:143;;;411:16;720:4;709:9;700:6;694:4;690:17;679:9;674:51;;;;;;;;;;;;;;;;;;;;;;;;;;0:821;;;721:5690:4:o", + "source": "pragma solidity ^0.5.16;\n\n// From https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/math/Math.sol\n// Subject to the MIT license.\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, reverting on overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, reverting with custom message on overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, errorMessage);\n\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on underflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n * - Subtraction cannot underflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n return sub(a, b, \"SafeMath: subtraction underflow\");\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on underflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n * - Subtraction cannot underflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n uint256 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, errorMessage);\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers.\n * Reverts on division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n return div(a, b, \"SafeMath: division by zero\");\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers.\n * Reverts with custom message on division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n // Solidity only automatically asserts when dividing by 0\n require(b > 0, errorMessage);\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n return mod(a, b, \"SafeMath: modulo by zero\");\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts with custom message when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b != 0, errorMessage);\n return a % b;\n }\n}", + "sourcePath": "/Users/janliphardt/Documents/GitHub/optimism/omgx_examples/compound-simple/contracts/SafeMath.sol", + "ast": { + "absolutePath": "project:/contracts/SafeMath.sol", + "exportedSymbols": { + "SafeMath": [ + 2886 + ] + }, + "id": 2887, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2638, + "literals": [ + "solidity", + "^", + "0.5", + ".16" + ], + "nodeType": "PragmaDirective", + "src": "0:24:4" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", + "fullyImplemented": true, + "id": 2886, + "linearizedBaseContracts": [ + 2886 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2662, + "nodeType": "Block", + "src": "1026:109:4", + "statements": [ + { + "assignments": [ + 2648 + ], + "declarations": [ + { + "constant": false, + "id": 2648, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 2662, + "src": "1036:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2647, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1036:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2652, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2649, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2640, + "src": "1048:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 2650, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2642, + "src": "1052:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1048:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1036:17:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2654, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2648, + "src": "1071:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 2655, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2640, + "src": "1076:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1071:6:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1079:29:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 2653, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "1063:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1063:46:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2659, + "nodeType": "ExpressionStatement", + "src": "1063:46:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2660, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2648, + "src": "1127:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2646, + "id": 2661, + "nodeType": "Return", + "src": "1120:8:4" + } + ] + }, + "documentation": "@dev Returns the addition of two unsigned integers, reverting on overflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", + "id": 2663, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2640, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 2663, + "src": "972:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2639, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "972:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2642, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 2663, + "src": "983:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2641, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "983:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "971:22:4" + }, + "returnParameters": { + "id": 2646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2645, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2663, + "src": "1017:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2644, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1017:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1016:9:4" + }, + "scope": 2886, + "src": "959:176:4", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2689, + "nodeType": "Block", + "src": "1471:92:4", + "statements": [ + { + "assignments": [ + 2675 + ], + "declarations": [ + { + "constant": false, + "id": 2675, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 2689, + "src": "1481:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2674, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1481:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2679, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2676, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2665, + "src": "1493:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 2677, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1497:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1493:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1481:17:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2681, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2675, + "src": "1516:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 2682, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2665, + "src": "1521:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1516:6:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2684, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2669, + "src": "1524:12:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2680, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "1508:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1508:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2686, + "nodeType": "ExpressionStatement", + "src": "1508:29:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2687, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2675, + "src": "1555:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2673, + "id": 2688, + "nodeType": "Return", + "src": "1548:8:4" + } + ] + }, + "documentation": "@dev Returns the addition of two unsigned integers, reverting with custom message on overflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", + "id": 2690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2665, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 2690, + "src": "1389:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2664, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1389:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2667, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 2690, + "src": "1400:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1400:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2669, + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2690, + "src": "1411:26:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2668, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1411:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1388:50:4" + }, + "returnParameters": { + "id": 2673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2672, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2690, + "src": "1462:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2671, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1462:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1461:9:4" + }, + "scope": 2886, + "src": "1376:187:4", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2705, + "nodeType": "Block", + "src": "1889:68:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2700, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2692, + "src": "1910:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2701, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2694, + "src": "1913:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a207375627472616374696f6e20756e646572666c6f77", + "id": 2702, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1916:33:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1caebeb8fec78d96e2107fd22e0abe38fcab72034848d9a80a8de2a86ac41d40", + "typeString": "literal_string \"SafeMath: subtraction underflow\"" + }, + "value": "SafeMath: subtraction underflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_1caebeb8fec78d96e2107fd22e0abe38fcab72034848d9a80a8de2a86ac41d40", + "typeString": "literal_string \"SafeMath: subtraction underflow\"" + } + ], + "id": 2699, + "name": "sub", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2706, + 2733 + ], + "referencedDeclaration": 2733, + "src": "1906:3:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 2703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1906:44:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2698, + "id": 2704, + "nodeType": "Return", + "src": "1899:51:4" + } + ] + }, + "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on underflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot underflow.", + "id": 2706, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2692, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 2706, + "src": "1835:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2691, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1835:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2694, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 2706, + "src": "1846:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1846:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1834:22:4" + }, + "returnParameters": { + "id": 2698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2697, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2706, + "src": "1880:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1880:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1879:9:4" + }, + "scope": 2886, + "src": "1822:135:4", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2732, + "nodeType": "Block", + "src": "2331:92:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2718, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2710, + "src": "2349:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 2719, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2708, + "src": "2354:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2349:6:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2721, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2712, + "src": "2357:12:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2717, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "2341:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2341:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2723, + "nodeType": "ExpressionStatement", + "src": "2341:29:4" + }, + { + "assignments": [ + 2725 + ], + "declarations": [ + { + "constant": false, + "id": 2725, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 2732, + "src": "2380:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2380:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2729, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2726, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2708, + "src": "2392:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 2727, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2710, + "src": "2396:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2392:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2380:17:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2730, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "2415:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2716, + "id": 2731, + "nodeType": "Return", + "src": "2408:8:4" + } + ] + }, + "documentation": "@dev Returns the subtraction of two unsigned integers, reverting with custom message on underflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot underflow.", + "id": 2733, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2713, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2708, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 2733, + "src": "2249:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2707, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2249:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2710, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 2733, + "src": "2260:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2709, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2260:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2712, + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2733, + "src": "2271:26:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2711, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2271:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2248:50:4" + }, + "returnParameters": { + "id": 2716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2715, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2733, + "src": "2322:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2714, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2322:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2321:9:4" + }, + "scope": 2886, + "src": "2236:187:4", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2766, + "nodeType": "Block", + "src": "2723:392:4", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2742, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2735, + "src": "2955:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2743, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2960:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2955:6:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2748, + "nodeType": "IfStatement", + "src": "2951:45:4", + "trueBody": { + "id": 2747, + "nodeType": "Block", + "src": "2963:33:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2984:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 2741, + "id": 2746, + "nodeType": "Return", + "src": "2977:8:4" + } + ] + } + }, + { + "assignments": [ + 2750 + ], + "declarations": [ + { + "constant": false, + "id": 2750, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 2766, + "src": "3006:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3006:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2754, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2751, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2735, + "src": "3018:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 2752, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2737, + "src": "3022:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3018:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3006:17:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2756, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2750, + "src": "3041:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 2757, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2735, + "src": "3045:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3041:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2759, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2737, + "src": "3050:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3041:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 2761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3053:35:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 2755, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "3033:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3033:56:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2763, + "nodeType": "ExpressionStatement", + "src": "3033:56:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2764, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2750, + "src": "3107:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2741, + "id": 2765, + "nodeType": "Return", + "src": "3100:8:4" + } + ] + }, + "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on overflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", + "id": 2767, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2738, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2735, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 2767, + "src": "2669:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2734, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2669:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2737, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 2767, + "src": "2680:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2736, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2680:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2668:22:4" + }, + "returnParameters": { + "id": 2741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2740, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2767, + "src": "2714:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2739, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2714:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2713:9:4" + }, + "scope": 2886, + "src": "2656:459:4", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2802, + "nodeType": "Block", + "src": "3443:369:4", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2778, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2769, + "src": "3675:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3680:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3675:6:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2784, + "nodeType": "IfStatement", + "src": "3671:45:4", + "trueBody": { + "id": 2783, + "nodeType": "Block", + "src": "3683:33:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3704:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 2777, + "id": 2782, + "nodeType": "Return", + "src": "3697:8:4" + } + ] + } + }, + { + "assignments": [ + 2786 + ], + "declarations": [ + { + "constant": false, + "id": 2786, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 2802, + "src": "3726:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3726:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2790, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2787, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2769, + "src": "3738:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 2788, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2771, + "src": "3742:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3738:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3726:17:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2792, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2786, + "src": "3761:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 2793, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2769, + "src": "3765:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3761:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2795, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2771, + "src": "3770:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3761:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2797, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2773, + "src": "3773:12:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2791, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "3753:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3753:33:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2799, + "nodeType": "ExpressionStatement", + "src": "3753:33:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2800, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2786, + "src": "3804:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2777, + "id": 2801, + "nodeType": "Return", + "src": "3797:8:4" + } + ] + }, + "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on overflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", + "id": 2803, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2774, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2769, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 2803, + "src": "3361:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3361:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2771, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 2803, + "src": "3372:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3372:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2773, + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2803, + "src": "3383:26:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2772, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3383:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3360:50:4" + }, + "returnParameters": { + "id": 2777, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2776, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2803, + "src": "3434:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3434:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3433:9:4" + }, + "scope": 2886, + "src": "3348:464:4", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2818, + "nodeType": "Block", + "src": "4334:63:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2813, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "4355:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2814, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2807, + "src": "4358:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4361:28:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 2812, + "name": "div", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2819, + 2846 + ], + "referencedDeclaration": 2846, + "src": "4351:3:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 2816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4351:39:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2811, + "id": 2817, + "nodeType": "Return", + "src": "4344:46:4" + } + ] + }, + "documentation": "@dev Returns the integer division of two unsigned integers.\nReverts on division by zero. The result is rounded towards zero.\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n`revert` opcode (which leaves remaining gas untouched) while Solidity\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", + "id": 2819, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2805, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 2819, + "src": "4280:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2804, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4280:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2807, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 2819, + "src": "4291:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4291:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4279:22:4" + }, + "returnParameters": { + "id": 2811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2810, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2819, + "src": "4325:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2809, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4325:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4324:9:4" + }, + "scope": 2886, + "src": "4267:130:4", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2845, + "nodeType": "Block", + "src": "4967:243:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2831, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2823, + "src": "5051:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5055:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5051:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2834, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "5058:12:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "5043:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5043:28:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2836, + "nodeType": "ExpressionStatement", + "src": "5043:28:4" + }, + { + "assignments": [ + 2838 + ], + "declarations": [ + { + "constant": false, + "id": 2838, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 2845, + "src": "5081:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2837, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5081:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2842, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2839, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2821, + "src": "5093:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 2840, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2823, + "src": "5097:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5093:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5081:17:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2843, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2838, + "src": "5202:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2829, + "id": 2844, + "nodeType": "Return", + "src": "5195:8:4" + } + ] + }, + "documentation": "@dev Returns the integer division of two unsigned integers.\nReverts with custom message on division by zero. The result is rounded towards zero.\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n`revert` opcode (which leaves remaining gas untouched) while Solidity\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", + "id": 2846, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2821, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 2846, + "src": "4885:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4885:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2823, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 2846, + "src": "4896:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4896:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2825, + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2846, + "src": "4907:26:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2824, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4907:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4884:50:4" + }, + "returnParameters": { + "id": 2829, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2828, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2846, + "src": "4958:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2827, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4958:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4957:9:4" + }, + "scope": 2886, + "src": "4872:338:4", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2861, + "nodeType": "Block", + "src": "5721:61:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2856, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2848, + "src": "5742:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2857, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2850, + "src": "5745:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 2858, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5748:26:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 2855, + "name": "mod", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2862, + 2885 + ], + "referencedDeclaration": 2885, + "src": "5738:3:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 2859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5738:37:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2854, + "id": 2860, + "nodeType": "Return", + "src": "5731:44:4" + } + ] + }, + "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", + "id": 2862, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2851, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2848, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 2862, + "src": "5667:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2847, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5667:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2850, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 2862, + "src": "5678:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2849, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5678:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5666:22:4" + }, + "returnParameters": { + "id": 2854, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2853, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2862, + "src": "5712:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2852, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5712:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5711:9:4" + }, + "scope": 2886, + "src": "5654:128:4", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2884, + "nodeType": "Block", + "src": "6341:68:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2874, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2866, + "src": "6359:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6364:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6359:6:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2877, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2868, + "src": "6367:12:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2873, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "6351:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6351:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2879, + "nodeType": "ExpressionStatement", + "src": "6351:29:4" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2880, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2864, + "src": "6397:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 2881, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2866, + "src": "6401:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6397:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2872, + "id": 2883, + "nodeType": "Return", + "src": "6390:12:4" + } + ] + }, + "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts with custom message when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", + "id": 2885, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2869, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2864, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 2885, + "src": "6259:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2863, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6259:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2866, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 2885, + "src": "6270:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2865, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6270:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2868, + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2885, + "src": "6281:26:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2867, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6281:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6258:50:4" + }, + "returnParameters": { + "id": 2872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2871, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2885, + "src": "6332:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6332:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6331:9:4" + }, + "scope": 2886, + "src": "6246:163:4", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 2887, + "src": "721:5690:4" + } + ], + "src": "0:6411:4" + }, + "legacyAST": { + "attributes": { + "absolutePath": "project:/contracts/SafeMath.sol", + "exportedSymbols": { + "SafeMath": [ + 2886 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.5", + ".16" + ] + }, + "id": 2638, + "name": "PragmaDirective", + "src": "0:24:4" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2886 + ], + "name": "SafeMath", + "scope": 2887 + }, + "children": [ + { + "attributes": { + "documentation": "@dev Returns the addition of two unsigned integers, reverting on overflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 2886, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 2663, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2639, + "name": "ElementaryTypeName", + "src": "972:7:4" + } + ], + "id": 2640, + "name": "VariableDeclaration", + "src": "972:9:4" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 2663, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2641, + "name": "ElementaryTypeName", + "src": "983:7:4" + } + ], + "id": 2642, + "name": "VariableDeclaration", + "src": "983:9:4" + } + ], + "id": 2643, + "name": "ParameterList", + "src": "971:22:4" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2663, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2644, + "name": "ElementaryTypeName", + "src": "1017:7:4" + } + ], + "id": 2645, + "name": "VariableDeclaration", + "src": "1017:7:4" + } + ], + "id": 2646, + "name": "ParameterList", + "src": "1016:9:4" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2648 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "c", + "scope": 2662, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2647, + "name": "ElementaryTypeName", + "src": "1036:7:4" + } + ], + "id": 2648, + "name": "VariableDeclaration", + "src": "1036:9:4" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2640, + "type": "uint256", + "value": "a" + }, + "id": 2649, + "name": "Identifier", + "src": "1048:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2642, + "type": "uint256", + "value": "b" + }, + "id": 2650, + "name": "Identifier", + "src": "1052:1:4" + } + ], + "id": 2651, + "name": "BinaryOperation", + "src": "1048:5:4" + } + ], + "id": 2652, + "name": "VariableDeclarationStatement", + "src": "1036:17:4" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2653, + "name": "Identifier", + "src": "1063:7:4" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2648, + "type": "uint256", + "value": "c" + }, + "id": 2654, + "name": "Identifier", + "src": "1071:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2640, + "type": "uint256", + "value": "a" + }, + "id": 2655, + "name": "Identifier", + "src": "1076:1:4" + } + ], + "id": 2656, + "name": "BinaryOperation", + "src": "1071:6:4" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"SafeMath: addition overflow\"", + "value": "SafeMath: addition overflow" + }, + "id": 2657, + "name": "Literal", + "src": "1079:29:4" + } + ], + "id": 2658, + "name": "FunctionCall", + "src": "1063:46:4" + } + ], + "id": 2659, + "name": "ExpressionStatement", + "src": "1063:46:4" + }, + { + "attributes": { + "functionReturnParameters": 2646 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2648, + "type": "uint256", + "value": "c" + }, + "id": 2660, + "name": "Identifier", + "src": "1127:1:4" + } + ], + "id": 2661, + "name": "Return", + "src": "1120:8:4" + } + ], + "id": 2662, + "name": "Block", + "src": "1026:109:4" + } + ], + "id": 2663, + "name": "FunctionDefinition", + "src": "959:176:4" + }, + { + "attributes": { + "documentation": "@dev Returns the addition of two unsigned integers, reverting with custom message on overflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 2886, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 2690, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2664, + "name": "ElementaryTypeName", + "src": "1389:7:4" + } + ], + "id": 2665, + "name": "VariableDeclaration", + "src": "1389:9:4" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 2690, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2666, + "name": "ElementaryTypeName", + "src": "1400:7:4" + } + ], + "id": 2667, + "name": "VariableDeclaration", + "src": "1400:9:4" + }, + { + "attributes": { + "constant": false, + "name": "errorMessage", + "scope": 2690, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2668, + "name": "ElementaryTypeName", + "src": "1411:6:4" + } + ], + "id": 2669, + "name": "VariableDeclaration", + "src": "1411:26:4" + } + ], + "id": 2670, + "name": "ParameterList", + "src": "1388:50:4" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2690, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2671, + "name": "ElementaryTypeName", + "src": "1462:7:4" + } + ], + "id": 2672, + "name": "VariableDeclaration", + "src": "1462:7:4" + } + ], + "id": 2673, + "name": "ParameterList", + "src": "1461:9:4" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2675 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "c", + "scope": 2689, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2674, + "name": "ElementaryTypeName", + "src": "1481:7:4" + } + ], + "id": 2675, + "name": "VariableDeclaration", + "src": "1481:9:4" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2665, + "type": "uint256", + "value": "a" + }, + "id": 2676, + "name": "Identifier", + "src": "1493:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2667, + "type": "uint256", + "value": "b" + }, + "id": 2677, + "name": "Identifier", + "src": "1497:1:4" + } + ], + "id": 2678, + "name": "BinaryOperation", + "src": "1493:5:4" + } + ], + "id": 2679, + "name": "VariableDeclarationStatement", + "src": "1481:17:4" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2680, + "name": "Identifier", + "src": "1508:7:4" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2675, + "type": "uint256", + "value": "c" + }, + "id": 2681, + "name": "Identifier", + "src": "1516:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2665, + "type": "uint256", + "value": "a" + }, + "id": 2682, + "name": "Identifier", + "src": "1521:1:4" + } + ], + "id": 2683, + "name": "BinaryOperation", + "src": "1516:6:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2669, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2684, + "name": "Identifier", + "src": "1524:12:4" + } + ], + "id": 2685, + "name": "FunctionCall", + "src": "1508:29:4" + } + ], + "id": 2686, + "name": "ExpressionStatement", + "src": "1508:29:4" + }, + { + "attributes": { + "functionReturnParameters": 2673 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2675, + "type": "uint256", + "value": "c" + }, + "id": 2687, + "name": "Identifier", + "src": "1555:1:4" + } + ], + "id": 2688, + "name": "Return", + "src": "1548:8:4" + } + ], + "id": 2689, + "name": "Block", + "src": "1471:92:4" + } + ], + "id": 2690, + "name": "FunctionDefinition", + "src": "1376:187:4" + }, + { + "attributes": { + "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on underflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot underflow.", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 2886, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 2706, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2691, + "name": "ElementaryTypeName", + "src": "1835:7:4" + } + ], + "id": 2692, + "name": "VariableDeclaration", + "src": "1835:9:4" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 2706, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2693, + "name": "ElementaryTypeName", + "src": "1846:7:4" + } + ], + "id": 2694, + "name": "VariableDeclaration", + "src": "1846:9:4" + } + ], + "id": 2695, + "name": "ParameterList", + "src": "1834:22:4" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2706, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2696, + "name": "ElementaryTypeName", + "src": "1880:7:4" + } + ], + "id": 2697, + "name": "VariableDeclaration", + "src": "1880:7:4" + } + ], + "id": 2698, + "name": "ParameterList", + "src": "1879:9:4" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2698 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_1caebeb8fec78d96e2107fd22e0abe38fcab72034848d9a80a8de2a86ac41d40", + "typeString": "literal_string \"SafeMath: subtraction underflow\"" + } + ], + "overloadedDeclarations": [ + 2706, + 2733 + ], + "referencedDeclaration": 2733, + "type": "function (uint256,uint256,string memory) pure returns (uint256)", + "value": "sub" + }, + "id": 2699, + "name": "Identifier", + "src": "1906:3:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2692, + "type": "uint256", + "value": "a" + }, + "id": 2700, + "name": "Identifier", + "src": "1910:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2694, + "type": "uint256", + "value": "b" + }, + "id": 2701, + "name": "Identifier", + "src": "1913:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "536166654d6174683a207375627472616374696f6e20756e646572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"SafeMath: subtraction underflow\"", + "value": "SafeMath: subtraction underflow" + }, + "id": 2702, + "name": "Literal", + "src": "1916:33:4" + } + ], + "id": 2703, + "name": "FunctionCall", + "src": "1906:44:4" + } + ], + "id": 2704, + "name": "Return", + "src": "1899:51:4" + } + ], + "id": 2705, + "name": "Block", + "src": "1889:68:4" + } + ], + "id": 2706, + "name": "FunctionDefinition", + "src": "1822:135:4" + }, + { + "attributes": { + "documentation": "@dev Returns the subtraction of two unsigned integers, reverting with custom message on underflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot underflow.", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 2886, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 2733, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2707, + "name": "ElementaryTypeName", + "src": "2249:7:4" + } + ], + "id": 2708, + "name": "VariableDeclaration", + "src": "2249:9:4" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 2733, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2709, + "name": "ElementaryTypeName", + "src": "2260:7:4" + } + ], + "id": 2710, + "name": "VariableDeclaration", + "src": "2260:9:4" + }, + { + "attributes": { + "constant": false, + "name": "errorMessage", + "scope": 2733, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2711, + "name": "ElementaryTypeName", + "src": "2271:6:4" + } + ], + "id": 2712, + "name": "VariableDeclaration", + "src": "2271:26:4" + } + ], + "id": 2713, + "name": "ParameterList", + "src": "2248:50:4" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2733, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2714, + "name": "ElementaryTypeName", + "src": "2322:7:4" + } + ], + "id": 2715, + "name": "VariableDeclaration", + "src": "2322:7:4" + } + ], + "id": 2716, + "name": "ParameterList", + "src": "2321:9:4" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2717, + "name": "Identifier", + "src": "2341:7:4" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2710, + "type": "uint256", + "value": "b" + }, + "id": 2718, + "name": "Identifier", + "src": "2349:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2708, + "type": "uint256", + "value": "a" + }, + "id": 2719, + "name": "Identifier", + "src": "2354:1:4" + } + ], + "id": 2720, + "name": "BinaryOperation", + "src": "2349:6:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2712, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2721, + "name": "Identifier", + "src": "2357:12:4" + } + ], + "id": 2722, + "name": "FunctionCall", + "src": "2341:29:4" + } + ], + "id": 2723, + "name": "ExpressionStatement", + "src": "2341:29:4" + }, + { + "attributes": { + "assignments": [ + 2725 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "c", + "scope": 2732, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2724, + "name": "ElementaryTypeName", + "src": "2380:7:4" + } + ], + "id": 2725, + "name": "VariableDeclaration", + "src": "2380:9:4" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2708, + "type": "uint256", + "value": "a" + }, + "id": 2726, + "name": "Identifier", + "src": "2392:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2710, + "type": "uint256", + "value": "b" + }, + "id": 2727, + "name": "Identifier", + "src": "2396:1:4" + } + ], + "id": 2728, + "name": "BinaryOperation", + "src": "2392:5:4" + } + ], + "id": 2729, + "name": "VariableDeclarationStatement", + "src": "2380:17:4" + }, + { + "attributes": { + "functionReturnParameters": 2716 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "c" + }, + "id": 2730, + "name": "Identifier", + "src": "2415:1:4" + } + ], + "id": 2731, + "name": "Return", + "src": "2408:8:4" + } + ], + "id": 2732, + "name": "Block", + "src": "2331:92:4" + } + ], + "id": 2733, + "name": "FunctionDefinition", + "src": "2236:187:4" + }, + { + "attributes": { + "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on overflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mul", + "scope": 2886, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 2767, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2734, + "name": "ElementaryTypeName", + "src": "2669:7:4" + } + ], + "id": 2735, + "name": "VariableDeclaration", + "src": "2669:9:4" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 2767, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2736, + "name": "ElementaryTypeName", + "src": "2680:7:4" + } + ], + "id": 2737, + "name": "VariableDeclaration", + "src": "2680:9:4" + } + ], + "id": 2738, + "name": "ParameterList", + "src": "2668:22:4" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2767, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2739, + "name": "ElementaryTypeName", + "src": "2714:7:4" + } + ], + "id": 2740, + "name": "VariableDeclaration", + "src": "2714:7:4" + } + ], + "id": 2741, + "name": "ParameterList", + "src": "2713:9:4" + }, + { + "children": [ + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2735, + "type": "uint256", + "value": "a" + }, + "id": 2742, + "name": "Identifier", + "src": "2955:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2743, + "name": "Literal", + "src": "2960:1:4" + } + ], + "id": 2744, + "name": "BinaryOperation", + "src": "2955:6:4" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2741 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2745, + "name": "Literal", + "src": "2984:1:4" + } + ], + "id": 2746, + "name": "Return", + "src": "2977:8:4" + } + ], + "id": 2747, + "name": "Block", + "src": "2963:33:4" + } + ], + "id": 2748, + "name": "IfStatement", + "src": "2951:45:4" + }, + { + "attributes": { + "assignments": [ + 2750 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "c", + "scope": 2766, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2749, + "name": "ElementaryTypeName", + "src": "3006:7:4" + } + ], + "id": 2750, + "name": "VariableDeclaration", + "src": "3006:9:4" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2735, + "type": "uint256", + "value": "a" + }, + "id": 2751, + "name": "Identifier", + "src": "3018:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2737, + "type": "uint256", + "value": "b" + }, + "id": 2752, + "name": "Identifier", + "src": "3022:1:4" + } + ], + "id": 2753, + "name": "BinaryOperation", + "src": "3018:5:4" + } + ], + "id": 2754, + "name": "VariableDeclarationStatement", + "src": "3006:17:4" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2755, + "name": "Identifier", + "src": "3033:7:4" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2750, + "type": "uint256", + "value": "c" + }, + "id": 2756, + "name": "Identifier", + "src": "3041:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2735, + "type": "uint256", + "value": "a" + }, + "id": 2757, + "name": "Identifier", + "src": "3045:1:4" + } + ], + "id": 2758, + "name": "BinaryOperation", + "src": "3041:5:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2737, + "type": "uint256", + "value": "b" + }, + "id": 2759, + "name": "Identifier", + "src": "3050:1:4" + } + ], + "id": 2760, + "name": "BinaryOperation", + "src": "3041:10:4" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"SafeMath: multiplication overflow\"", + "value": "SafeMath: multiplication overflow" + }, + "id": 2761, + "name": "Literal", + "src": "3053:35:4" + } + ], + "id": 2762, + "name": "FunctionCall", + "src": "3033:56:4" + } + ], + "id": 2763, + "name": "ExpressionStatement", + "src": "3033:56:4" + }, + { + "attributes": { + "functionReturnParameters": 2741 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2750, + "type": "uint256", + "value": "c" + }, + "id": 2764, + "name": "Identifier", + "src": "3107:1:4" + } + ], + "id": 2765, + "name": "Return", + "src": "3100:8:4" + } + ], + "id": 2766, + "name": "Block", + "src": "2723:392:4" + } + ], + "id": 2767, + "name": "FunctionDefinition", + "src": "2656:459:4" + }, + { + "attributes": { + "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on overflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mul", + "scope": 2886, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 2803, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2768, + "name": "ElementaryTypeName", + "src": "3361:7:4" + } + ], + "id": 2769, + "name": "VariableDeclaration", + "src": "3361:9:4" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 2803, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2770, + "name": "ElementaryTypeName", + "src": "3372:7:4" + } + ], + "id": 2771, + "name": "VariableDeclaration", + "src": "3372:9:4" + }, + { + "attributes": { + "constant": false, + "name": "errorMessage", + "scope": 2803, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2772, + "name": "ElementaryTypeName", + "src": "3383:6:4" + } + ], + "id": 2773, + "name": "VariableDeclaration", + "src": "3383:26:4" + } + ], + "id": 2774, + "name": "ParameterList", + "src": "3360:50:4" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2803, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2775, + "name": "ElementaryTypeName", + "src": "3434:7:4" + } + ], + "id": 2776, + "name": "VariableDeclaration", + "src": "3434:7:4" + } + ], + "id": 2777, + "name": "ParameterList", + "src": "3433:9:4" + }, + { + "children": [ + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2769, + "type": "uint256", + "value": "a" + }, + "id": 2778, + "name": "Identifier", + "src": "3675:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2779, + "name": "Literal", + "src": "3680:1:4" + } + ], + "id": 2780, + "name": "BinaryOperation", + "src": "3675:6:4" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2777 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2781, + "name": "Literal", + "src": "3704:1:4" + } + ], + "id": 2782, + "name": "Return", + "src": "3697:8:4" + } + ], + "id": 2783, + "name": "Block", + "src": "3683:33:4" + } + ], + "id": 2784, + "name": "IfStatement", + "src": "3671:45:4" + }, + { + "attributes": { + "assignments": [ + 2786 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "c", + "scope": 2802, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2785, + "name": "ElementaryTypeName", + "src": "3726:7:4" + } + ], + "id": 2786, + "name": "VariableDeclaration", + "src": "3726:9:4" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2769, + "type": "uint256", + "value": "a" + }, + "id": 2787, + "name": "Identifier", + "src": "3738:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2771, + "type": "uint256", + "value": "b" + }, + "id": 2788, + "name": "Identifier", + "src": "3742:1:4" + } + ], + "id": 2789, + "name": "BinaryOperation", + "src": "3738:5:4" + } + ], + "id": 2790, + "name": "VariableDeclarationStatement", + "src": "3726:17:4" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2791, + "name": "Identifier", + "src": "3753:7:4" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2786, + "type": "uint256", + "value": "c" + }, + "id": 2792, + "name": "Identifier", + "src": "3761:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2769, + "type": "uint256", + "value": "a" + }, + "id": 2793, + "name": "Identifier", + "src": "3765:1:4" + } + ], + "id": 2794, + "name": "BinaryOperation", + "src": "3761:5:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2771, + "type": "uint256", + "value": "b" + }, + "id": 2795, + "name": "Identifier", + "src": "3770:1:4" + } + ], + "id": 2796, + "name": "BinaryOperation", + "src": "3761:10:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2773, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2797, + "name": "Identifier", + "src": "3773:12:4" + } + ], + "id": 2798, + "name": "FunctionCall", + "src": "3753:33:4" + } + ], + "id": 2799, + "name": "ExpressionStatement", + "src": "3753:33:4" + }, + { + "attributes": { + "functionReturnParameters": 2777 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2786, + "type": "uint256", + "value": "c" + }, + "id": 2800, + "name": "Identifier", + "src": "3804:1:4" + } + ], + "id": 2801, + "name": "Return", + "src": "3797:8:4" + } + ], + "id": 2802, + "name": "Block", + "src": "3443:369:4" + } + ], + "id": 2803, + "name": "FunctionDefinition", + "src": "3348:464:4" + }, + { + "attributes": { + "documentation": "@dev Returns the integer division of two unsigned integers.\nReverts on division by zero. The result is rounded towards zero.\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n`revert` opcode (which leaves remaining gas untouched) while Solidity\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 2886, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 2819, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2804, + "name": "ElementaryTypeName", + "src": "4280:7:4" + } + ], + "id": 2805, + "name": "VariableDeclaration", + "src": "4280:9:4" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 2819, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2806, + "name": "ElementaryTypeName", + "src": "4291:7:4" + } + ], + "id": 2807, + "name": "VariableDeclaration", + "src": "4291:9:4" + } + ], + "id": 2808, + "name": "ParameterList", + "src": "4279:22:4" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2819, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2809, + "name": "ElementaryTypeName", + "src": "4325:7:4" + } + ], + "id": 2810, + "name": "VariableDeclaration", + "src": "4325:7:4" + } + ], + "id": 2811, + "name": "ParameterList", + "src": "4324:9:4" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2811 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "overloadedDeclarations": [ + 2819, + 2846 + ], + "referencedDeclaration": 2846, + "type": "function (uint256,uint256,string memory) pure returns (uint256)", + "value": "div" + }, + "id": 2812, + "name": "Identifier", + "src": "4351:3:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2805, + "type": "uint256", + "value": "a" + }, + "id": 2813, + "name": "Identifier", + "src": "4355:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2807, + "type": "uint256", + "value": "b" + }, + "id": 2814, + "name": "Identifier", + "src": "4358:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "536166654d6174683a206469766973696f6e206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"SafeMath: division by zero\"", + "value": "SafeMath: division by zero" + }, + "id": 2815, + "name": "Literal", + "src": "4361:28:4" + } + ], + "id": 2816, + "name": "FunctionCall", + "src": "4351:39:4" + } + ], + "id": 2817, + "name": "Return", + "src": "4344:46:4" + } + ], + "id": 2818, + "name": "Block", + "src": "4334:63:4" + } + ], + "id": 2819, + "name": "FunctionDefinition", + "src": "4267:130:4" + }, + { + "attributes": { + "documentation": "@dev Returns the integer division of two unsigned integers.\nReverts with custom message on division by zero. The result is rounded towards zero.\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n`revert` opcode (which leaves remaining gas untouched) while Solidity\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 2886, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 2846, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2820, + "name": "ElementaryTypeName", + "src": "4885:7:4" + } + ], + "id": 2821, + "name": "VariableDeclaration", + "src": "4885:9:4" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 2846, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2822, + "name": "ElementaryTypeName", + "src": "4896:7:4" + } + ], + "id": 2823, + "name": "VariableDeclaration", + "src": "4896:9:4" + }, + { + "attributes": { + "constant": false, + "name": "errorMessage", + "scope": 2846, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2824, + "name": "ElementaryTypeName", + "src": "4907:6:4" + } + ], + "id": 2825, + "name": "VariableDeclaration", + "src": "4907:26:4" + } + ], + "id": 2826, + "name": "ParameterList", + "src": "4884:50:4" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2846, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2827, + "name": "ElementaryTypeName", + "src": "4958:7:4" + } + ], + "id": 2828, + "name": "VariableDeclaration", + "src": "4958:7:4" + } + ], + "id": 2829, + "name": "ParameterList", + "src": "4957:9:4" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2830, + "name": "Identifier", + "src": "5043:7:4" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2823, + "type": "uint256", + "value": "b" + }, + "id": 2831, + "name": "Identifier", + "src": "5051:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2832, + "name": "Literal", + "src": "5055:1:4" + } + ], + "id": 2833, + "name": "BinaryOperation", + "src": "5051:5:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2825, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2834, + "name": "Identifier", + "src": "5058:12:4" + } + ], + "id": 2835, + "name": "FunctionCall", + "src": "5043:28:4" + } + ], + "id": 2836, + "name": "ExpressionStatement", + "src": "5043:28:4" + }, + { + "attributes": { + "assignments": [ + 2838 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "c", + "scope": 2845, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2837, + "name": "ElementaryTypeName", + "src": "5081:7:4" + } + ], + "id": 2838, + "name": "VariableDeclaration", + "src": "5081:9:4" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2821, + "type": "uint256", + "value": "a" + }, + "id": 2839, + "name": "Identifier", + "src": "5093:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2823, + "type": "uint256", + "value": "b" + }, + "id": 2840, + "name": "Identifier", + "src": "5097:1:4" + } + ], + "id": 2841, + "name": "BinaryOperation", + "src": "5093:5:4" + } + ], + "id": 2842, + "name": "VariableDeclarationStatement", + "src": "5081:17:4" + }, + { + "attributes": { + "functionReturnParameters": 2829 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2838, + "type": "uint256", + "value": "c" + }, + "id": 2843, + "name": "Identifier", + "src": "5202:1:4" + } + ], + "id": 2844, + "name": "Return", + "src": "5195:8:4" + } + ], + "id": 2845, + "name": "Block", + "src": "4967:243:4" + } + ], + "id": 2846, + "name": "FunctionDefinition", + "src": "4872:338:4" + }, + { + "attributes": { + "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 2886, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 2862, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2847, + "name": "ElementaryTypeName", + "src": "5667:7:4" + } + ], + "id": 2848, + "name": "VariableDeclaration", + "src": "5667:9:4" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 2862, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2849, + "name": "ElementaryTypeName", + "src": "5678:7:4" + } + ], + "id": 2850, + "name": "VariableDeclaration", + "src": "5678:9:4" + } + ], + "id": 2851, + "name": "ParameterList", + "src": "5666:22:4" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2862, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2852, + "name": "ElementaryTypeName", + "src": "5712:7:4" + } + ], + "id": 2853, + "name": "VariableDeclaration", + "src": "5712:7:4" + } + ], + "id": 2854, + "name": "ParameterList", + "src": "5711:9:4" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2854 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "overloadedDeclarations": [ + 2862, + 2885 + ], + "referencedDeclaration": 2885, + "type": "function (uint256,uint256,string memory) pure returns (uint256)", + "value": "mod" + }, + "id": 2855, + "name": "Identifier", + "src": "5738:3:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2848, + "type": "uint256", + "value": "a" + }, + "id": 2856, + "name": "Identifier", + "src": "5742:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2850, + "type": "uint256", + "value": "b" + }, + "id": 2857, + "name": "Identifier", + "src": "5745:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"SafeMath: modulo by zero\"", + "value": "SafeMath: modulo by zero" + }, + "id": 2858, + "name": "Literal", + "src": "5748:26:4" + } + ], + "id": 2859, + "name": "FunctionCall", + "src": "5738:37:4" + } + ], + "id": 2860, + "name": "Return", + "src": "5731:44:4" + } + ], + "id": 2861, + "name": "Block", + "src": "5721:61:4" + } + ], + "id": 2862, + "name": "FunctionDefinition", + "src": "5654:128:4" + }, + { + "attributes": { + "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts with custom message when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 2886, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 2885, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2863, + "name": "ElementaryTypeName", + "src": "6259:7:4" + } + ], + "id": 2864, + "name": "VariableDeclaration", + "src": "6259:9:4" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 2885, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2865, + "name": "ElementaryTypeName", + "src": "6270:7:4" + } + ], + "id": 2866, + "name": "VariableDeclaration", + "src": "6270:9:4" + }, + { + "attributes": { + "constant": false, + "name": "errorMessage", + "scope": 2885, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2867, + "name": "ElementaryTypeName", + "src": "6281:6:4" + } + ], + "id": 2868, + "name": "VariableDeclaration", + "src": "6281:26:4" + } + ], + "id": 2869, + "name": "ParameterList", + "src": "6258:50:4" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2885, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2870, + "name": "ElementaryTypeName", + "src": "6332:7:4" + } + ], + "id": 2871, + "name": "VariableDeclaration", + "src": "6332:7:4" + } + ], + "id": 2872, + "name": "ParameterList", + "src": "6331:9:4" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2873, + "name": "Identifier", + "src": "6351:7:4" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2866, + "type": "uint256", + "value": "b" + }, + "id": 2874, + "name": "Identifier", + "src": "6359:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2875, + "name": "Literal", + "src": "6364:1:4" + } + ], + "id": 2876, + "name": "BinaryOperation", + "src": "6359:6:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2868, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2877, + "name": "Identifier", + "src": "6367:12:4" + } + ], + "id": 2878, + "name": "FunctionCall", + "src": "6351:29:4" + } + ], + "id": 2879, + "name": "ExpressionStatement", + "src": "6351:29:4" + }, + { + "attributes": { + "functionReturnParameters": 2872 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2864, + "type": "uint256", + "value": "a" + }, + "id": 2880, + "name": "Identifier", + "src": "6397:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2866, + "type": "uint256", + "value": "b" + }, + "id": 2881, + "name": "Identifier", + "src": "6401:1:4" + } + ], + "id": 2882, + "name": "BinaryOperation", + "src": "6397:5:4" + } + ], + "id": 2883, + "name": "Return", + "src": "6390:12:4" + } + ], + "id": 2884, + "name": "Block", + "src": "6341:68:4" + } + ], + "id": 2885, + "name": "FunctionDefinition", + "src": "6246:163:4" + } + ], + "id": 2886, + "name": "ContractDefinition", + "src": "721:5690:4" + } + ], + "id": 2887, + "name": "SourceUnit", + "src": "0:6411:4" + }, + "compiler": { + "name": "solc", + "version": "0.5.16" + }, + "networks": {}, + "schemaVersion": "3.4.3", + "updatedAt": "2021-09-05T21:45:41.191Z", + "devdoc": { + "details": "Wrappers over Solidity's arithmetic operations with added overflow checks. * Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. * Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.", + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/omgx_examples/compound-simple/build-ovm/Timelock.json b/omgx_examples/compound-simple/build-ovm/Timelock.json new file mode 100644 index 000000000000..e6c3e46eb5dc --- /dev/null +++ b/omgx_examples/compound-simple/build-ovm/Timelock.json @@ -0,0 +1,13674 @@ +{ + "contractName": "Timelock", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "admin_", + "type": "address" + }, + { + "internalType": "uint256", + "name": "delay_", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "CancelTransaction", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "ExecuteTransaction", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "NewAdmin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "newDelay", + "type": "uint256" + } + ], + "name": "NewDelay", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newPendingAdmin", + "type": "address" + } + ], + "name": "NewPendingAdmin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "QueueTransaction", + "type": "event" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "constant": true, + "inputs": [], + "name": "GRACE_PERIOD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "MAXIMUM_DELAY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "MINIMUM_DELAY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "admin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "delay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "pendingAdmin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "queuedTransactions", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "delay_", + "type": "uint256" + } + ], + "name": "setDelay", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "pendingAdmin_", + "type": "address" + } + ], + "name": "setPendingAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "queueTransaction", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "cancelTransaction", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "executeTransaction", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.16-develop.2020.11.10+ovm+commit.00cdd204\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"delay_\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"CancelTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"ExecuteTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newDelay\",\"type\":\"uint256\"}],\"name\":\"NewDelay\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"NewPendingAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"QueueTransaction\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":true,\"inputs\":[],\"name\":\"GRACE_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAXIMUM_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MINIMUM_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"acceptAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"cancelTransaction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"executeTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"queueTransaction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"queuedTransactions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"delay_\",\"type\":\"uint256\"}],\"name\":\"setDelay\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingAdmin_\",\"type\":\"address\"}],\"name\":\"setPendingAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/Timelock.sol\":\"Timelock\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"project:/contracts/SafeMath.sol\":{\"keccak256\":\"0x5082b717b4b08c7c2068666edce6f70363eeacee07777086ed8eef9353c39e2c\",\"urls\":[\"bzz-raw://02764f2c13cd5c53dd839d7554cfd6a668e45aff19e708b496896f181380cd7c\",\"dweb:/ipfs/QmcaGAZi7dQpCvmzKwzybQBYfyvFGdqHhXXXbJncTMewG7\"]},\"project:/contracts/Timelock.sol\":{\"keccak256\":\"0x8f340ee81d2355ebb4ed19d0daccf0cfa01e65154f6792a32ffde9815eccf669\",\"urls\":[\"bzz-raw://d8994a807eebbbe9aed942252c7008836d818c0a320fdd66c75ebad7197d7906\",\"dweb:/ipfs/QmUQHRXbXN7yivtFZcXx5BvQtBHeRFteJepZw9gLjtGzcd\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001c576000806200001962000106565b50505b5060405162001fb838038062001fb8833981810160405260408110156200004d576000806200004a62000106565b50505b8101908080519291906020018051925062000066915050565b62278d00811115620000b55760405162461bcd60e51b815260040180806020018281038252603881526020018062001f806038913960400191505060405180910390620000b262000106565b50505b816000600181620000c562000173565b816001600160a01b0302191690836001600160a01b0316021790620000e9620001d5565b5050508060028190620000fb620001d5565b505050505062000224565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156200014057808601518282016040015260200162000123565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b6040811015620001d057600082820152602001620001b7565b505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b600081526020620001b7565b611d4c80620002346000396000f3fe6080604052600436106100a25760003560e01c80630825f38f146100a45780630e18b6811461029857806326782247146102b65780633a66f901146102f05780634dd18bf514610495578063591fcdfe146104da5780636a42b8f81461066d5780637d645fab1461068b578063b1b43ae5146106a9578063c1a287e2146106c7578063e177246e146106e5578063f2b0653714610721578063f851a44014610771575b005b610221600480360360a08110156100c3576000806100c061183d565b50505b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156100fb576000806100f861183d565b50505b8201836020820111156101165760008061011361183d565b50505b803590602001918460018302840111600160201b831117156101405760008061013d61183d565b50505b91908080601f01602080910402602001604051908101604052818152929190602084018383808284376000920191909152509295949360208101935035915050600160201b81111561019a5760008061019761183d565b50505b8201836020820111156101b5576000806101b261183d565b50505b803590602001918460018302840111600160201b831117156101df576000806101dc61183d565b50505b91908080601f0160208091040260200160405190810160405281815292919060208401838380828437600092019190915250929550509135925061078f915050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561025d578082015183820152602001610245565b50505050905090810190601f16801561028a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102ad576000806102aa61183d565b50505b506100a2610d31565b3480156102cb576000806102c861183d565b50505b506102d4610e73565b6040516001600160a01b03909116815260200160405180910390f35b3480156103055760008061030261183d565b50505b50610483600480360360a08110156103255760008061032261183d565b50505b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561035d5760008061035a61183d565b50505b8201836020820111156103785760008061037561183d565b50505b803590602001918460018302840111600160201b831117156103a25760008061039f61183d565b50505b91908080601f01602080910402602001604051908101604052818152929190602084018383808284376000920191909152509295949360208101935035915050600160201b8111156103fc576000806103f961183d565b50505b8201836020820111156104175760008061041461183d565b50505b803590602001918460018302840111600160201b831117156104415760008061043e61183d565b50505b91908080601f01602080910402602001604051908101604052818152929190602084018383808284376000920191909152509295505091359250610e92915050565b60405190815260200160405180910390f35b3480156104aa576000806104a761183d565b50505b506100a2600480360360208110156104ca576000806104c761183d565b50505b50356001600160a01b03166111f4565b3480156104ef576000806104ec61183d565b50505b506100a2600480360360a081101561050f5760008061050c61183d565b50505b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156105475760008061054461183d565b50505b8201836020820111156105625760008061055f61183d565b50505b803590602001918460018302840111600160201b8311171561058c5760008061058961183d565b50505b91908080601f01602080910402602001604051908101604052818152929190602084018383808284376000920191909152509295949360208101935035915050600160201b8111156105e6576000806105e361183d565b50505b820183602082011115610601576000806105fe61183d565b50505b803590602001918460018302840111600160201b8311171561062b5760008061062861183d565b50505b91908080601f01602080910402602001604051908101604052818152929190602084018383808284376000920191909152509295505091359250611334915050565b3480156106825760008061067f61183d565b50505b50610483611628565b3480156106a05760008061069d61183d565b50505b50610483611635565b3480156106be576000806106bb61183d565b50505b5061048361163c565b3480156106dc576000806106d961183d565b50505b50610483611641565b3480156106fa576000806106f761183d565b50505b506100a26004803603602081101561071a5760008061071761183d565b50505b5035611648565b3480156107365760008061073361183d565b50505b5061075d600480360360208110156107565760008061075361183d565b50505b5035611794565b604051901515815260200160405180910390f35b3480156107865760008061078361183d565b50505b506102d46117bb565b606060008061079c6118a8565b906101000a90046001600160a01b03166001600160a01b03165a6107be611908565b6001600160a01b03161461080c5760405162461bcd60e51b8152600401808060200182810382526038815260200180611a93603891396040019150506040518091039061080961183d565b50505b6000868686868660405160200180866001600160a01b03166001600160a01b031681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561087b578082015183820152602001610863565b50505050905090810190601f1680156108a85780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156108de5780820151838201526020016108c6565b50505050905090810190601f16801561090b5780820380516001836020036101000a031916815260200191505b509750505050505050506040516020818303038152906040528051906020012060008181526003602052909150604090206000906109476118a8565b906101000a900460ff166109955760405162461bcd60e51b815260040180806020018281038252603d815260200180611bb2603d91396040019150506040518091039061099261183d565b50505b8261099e6117c6565b10156109e45760405162461bcd60e51b8152600401808060200182810382526045815260200180611b3560459139606001915050604051809103906109e161183d565b50505b6109f7836212750063ffffffff6117d616565b6109ff6117c6565b1115610a455760405162461bcd60e51b8152600401808060200182810382526033815260200180611b026033913960400191505060405180910390610a4261183d565b50505b6000818152600360205260408120600181610a5e6118a8565b8160ff02191690831515021790610a7361194e565b50505060608551610a85575083610b09565b8580519060200120856040516001600160e01b03198316602082019081529060240182805190602001908083835b60208310610ad25780518252601f199092019160209182019101610ab3565b6001836020036101000a03801982511681845116179092525050509190910193506040925050505160208183030381529060405290505b60006060896001600160a01b031689846040518082805190602001908083835b60208310610b485780518252601f199092019160209182019101610b29565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875a610b8161199c565b505050505050925050503d8060008114610bb7576040513d603f01601f191681016040523d815291503d6000602084013e610bbc565b606091505b509150915081610c065760405162461bcd60e51b815260040180806020018281038252603d815260200180611c95603d913960400191505060405180910390610c0361183d565b50505b896001600160a01b0316847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78b8b8b8b604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610c83578082015183820152602001610c6b565b50505050905090810190601f168015610cb05780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b83811015610ce6578082015183820152602001610cce565b50505050905090810190601f168015610d135780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a39998505050505050505050565b60006001610d3d6118a8565b906101000a90046001600160a01b03166001600160a01b03165a610d5f611908565b6001600160a01b031614610dad5760405162461bcd60e51b8152600401808060200182810382526038815260200180611bef6038913960400191505060405180910390610daa61183d565b50505b5a610db6611908565b6000600181610dc36118a8565b816001600160a01b0302191690836001600160a01b0316021790610de561194e565b5050506000600160006101000a81610dfb6118a8565b816001600160a01b0302191690836001600160a01b0316021790610e1d61194e565b50505060008090610e2c6118a8565b906101000a90046001600160a01b03166001600160a01b03167f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c60405160405180910390a2565b60006001610e7f6118a8565b906101000a90046001600160a01b031681565b60008080610e9e6118a8565b906101000a90046001600160a01b03166001600160a01b03165a610ec0611908565b6001600160a01b031614610f0e5760405162461bcd60e51b8152600401808060200182810382526036815260200180611c5f6036913960400191505060405180910390610f0b61183d565b50505b610f2f6002610f1b6118a8565b610f236117c6565b9063ffffffff6117d616565b821015610f765760405162461bcd60e51b8152600401808060200182810382526049815260200180611cd26049913960600191505060405180910390610f7361183d565b50505b6000868686868660405160200180866001600160a01b03166001600160a01b031681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610fe5578082015183820152602001610fcd565b50505050905090810190601f1680156110125780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b83811015611048578082015183820152602001611030565b50505050905090810190601f1680156110755780820380516001836020036101000a031916815260200191505b509750505050505050506040516020818303038152906040528051906020012060008181526003602052909150600190604090206001816110b46118a8565b8160ff021916908315150217906110c961194e565b505050866001600160a01b0316817f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f88888888604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015611149578082015183820152602001611131565b50505050905090810190601f1680156111765780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156111ac578082015183820152602001611194565b50505050905090810190601f1680156111d95780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a39695505050505050565b5a63996d79a5598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051925060005b604081101561124a57600082820152602001611233565b5050506001600160a01b03165a61125f611908565b6001600160a01b0316146112ad5760405162461bcd60e51b8152600401808060200182810382526038815260200180611c2760389139604001915050604051809103906112aa61183d565b50505b80600180806112ba6118a8565b816001600160a01b0302191690836001600160a01b03160217906112dc61194e565b50505060016000906112ec6118a8565b906101000a90046001600160a01b03166001600160a01b03167f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75660405160405180910390a250565b60008061133f6118a8565b906101000a90046001600160a01b03166001600160a01b03165a611361611908565b6001600160a01b0316146113af5760405162461bcd60e51b8152600401808060200182810382526037815260200180611acb60379139604001915050604051809103906113ac61183d565b50505b6000858585858560405160200180866001600160a01b03166001600160a01b031681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561141e578082015183820152602001611406565b50505050905090810190601f16801561144b5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b83811015611481578082015183820152602001611469565b50505050905090810190601f1680156114ae5780820380516001836020036101000a031916815260200191505b509750505050505050506040516020818303038152906040528051906020012060008181526003602052909150604081206001816114ea6118a8565b8160ff021916908315150217906114ff61194e565b505050856001600160a01b0316817f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8787878787604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561157f578082015183820152602001611567565b50505050905090810190601f1680156115ac5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156115e25780820151838201526020016115ca565b50505050905090810190601f16801561160f5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a3505050505050565b60026116326118a8565b81565b62278d0081565b600081565b6212750081565b5a63996d79a5598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051925060005b604081101561169e57600082820152602001611687565b5050506001600160a01b03165a6116b3611908565b6001600160a01b0316146117015760405162461bcd60e51b8152600401808060200182810382526031815260200180611d1b60319139604001915050604051809103906116fe61183d565b50505b62278d0081111561174c5760405162461bcd60e51b8152600401808060200182810382526038815260200180611b7a603891396040019150506040518091039061174961183d565b50505b8080600261175861194e565b50505060026117656118a8565b7f948b1f6a42ee138b7e34058ba85a37f716d55ff25ff05a763f15bed6a04c8d2c60405160405180910390a250565b6003602052806000526040600020600091506117ae6118a8565b906101000a900460ff1681565b600080610e7f6118a8565b60005a6117d1611a4c565b905090565b6000828201838110156118365760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b60448201526064016040518091039061183361183d565b50505b9392505050565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561187557808601518282016040015260200161185a565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b6040811015611903576000828201526020016118ec565b505050565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b805160008252935060206118ec565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b6000815260206118ec565b6385979f76598160e01b8152836004820152846024820152606060448201528760648201526084810160005b898110156119e05780890151828201526020016119c8565b506060828a60a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8c8c82606087013350600060045af15059845b81811015611a415760008152602001611a2d565b50919c505050505050565b63bdbf8c36598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b805160008252935060206118ec56fe54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206973207374616c652e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774207375727061737365642074696d65206c6f636b2e54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774206265656e207175657565642e54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737420636f6d652066726f6d2070656e64696e6741646d696e2e54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2e54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e20657865637574696f6e2072657665727465642e54696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374696d6174656420657865637574696f6e20626c6f636b206d75737420736174697366792064656c61792e54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2e54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e", + "deployedBytecode": "0x6080604052600436106100a25760003560e01c80630825f38f146100a45780630e18b6811461029857806326782247146102b65780633a66f901146102f05780634dd18bf514610495578063591fcdfe146104da5780636a42b8f81461066d5780637d645fab1461068b578063b1b43ae5146106a9578063c1a287e2146106c7578063e177246e146106e5578063f2b0653714610721578063f851a44014610771575b005b610221600480360360a08110156100c3576000806100c061183d565b50505b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156100fb576000806100f861183d565b50505b8201836020820111156101165760008061011361183d565b50505b803590602001918460018302840111600160201b831117156101405760008061013d61183d565b50505b91908080601f01602080910402602001604051908101604052818152929190602084018383808284376000920191909152509295949360208101935035915050600160201b81111561019a5760008061019761183d565b50505b8201836020820111156101b5576000806101b261183d565b50505b803590602001918460018302840111600160201b831117156101df576000806101dc61183d565b50505b91908080601f0160208091040260200160405190810160405281815292919060208401838380828437600092019190915250929550509135925061078f915050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561025d578082015183820152602001610245565b50505050905090810190601f16801561028a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102ad576000806102aa61183d565b50505b506100a2610d31565b3480156102cb576000806102c861183d565b50505b506102d4610e73565b6040516001600160a01b03909116815260200160405180910390f35b3480156103055760008061030261183d565b50505b50610483600480360360a08110156103255760008061032261183d565b50505b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561035d5760008061035a61183d565b50505b8201836020820111156103785760008061037561183d565b50505b803590602001918460018302840111600160201b831117156103a25760008061039f61183d565b50505b91908080601f01602080910402602001604051908101604052818152929190602084018383808284376000920191909152509295949360208101935035915050600160201b8111156103fc576000806103f961183d565b50505b8201836020820111156104175760008061041461183d565b50505b803590602001918460018302840111600160201b831117156104415760008061043e61183d565b50505b91908080601f01602080910402602001604051908101604052818152929190602084018383808284376000920191909152509295505091359250610e92915050565b60405190815260200160405180910390f35b3480156104aa576000806104a761183d565b50505b506100a2600480360360208110156104ca576000806104c761183d565b50505b50356001600160a01b03166111f4565b3480156104ef576000806104ec61183d565b50505b506100a2600480360360a081101561050f5760008061050c61183d565b50505b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156105475760008061054461183d565b50505b8201836020820111156105625760008061055f61183d565b50505b803590602001918460018302840111600160201b8311171561058c5760008061058961183d565b50505b91908080601f01602080910402602001604051908101604052818152929190602084018383808284376000920191909152509295949360208101935035915050600160201b8111156105e6576000806105e361183d565b50505b820183602082011115610601576000806105fe61183d565b50505b803590602001918460018302840111600160201b8311171561062b5760008061062861183d565b50505b91908080601f01602080910402602001604051908101604052818152929190602084018383808284376000920191909152509295505091359250611334915050565b3480156106825760008061067f61183d565b50505b50610483611628565b3480156106a05760008061069d61183d565b50505b50610483611635565b3480156106be576000806106bb61183d565b50505b5061048361163c565b3480156106dc576000806106d961183d565b50505b50610483611641565b3480156106fa576000806106f761183d565b50505b506100a26004803603602081101561071a5760008061071761183d565b50505b5035611648565b3480156107365760008061073361183d565b50505b5061075d600480360360208110156107565760008061075361183d565b50505b5035611794565b604051901515815260200160405180910390f35b3480156107865760008061078361183d565b50505b506102d46117bb565b606060008061079c6118a8565b906101000a90046001600160a01b03166001600160a01b03165a6107be611908565b6001600160a01b03161461080c5760405162461bcd60e51b8152600401808060200182810382526038815260200180611a93603891396040019150506040518091039061080961183d565b50505b6000868686868660405160200180866001600160a01b03166001600160a01b031681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561087b578082015183820152602001610863565b50505050905090810190601f1680156108a85780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156108de5780820151838201526020016108c6565b50505050905090810190601f16801561090b5780820380516001836020036101000a031916815260200191505b509750505050505050506040516020818303038152906040528051906020012060008181526003602052909150604090206000906109476118a8565b906101000a900460ff166109955760405162461bcd60e51b815260040180806020018281038252603d815260200180611bb2603d91396040019150506040518091039061099261183d565b50505b8261099e6117c6565b10156109e45760405162461bcd60e51b8152600401808060200182810382526045815260200180611b3560459139606001915050604051809103906109e161183d565b50505b6109f7836212750063ffffffff6117d616565b6109ff6117c6565b1115610a455760405162461bcd60e51b8152600401808060200182810382526033815260200180611b026033913960400191505060405180910390610a4261183d565b50505b6000818152600360205260408120600181610a5e6118a8565b8160ff02191690831515021790610a7361194e565b50505060608551610a85575083610b09565b8580519060200120856040516001600160e01b03198316602082019081529060240182805190602001908083835b60208310610ad25780518252601f199092019160209182019101610ab3565b6001836020036101000a03801982511681845116179092525050509190910193506040925050505160208183030381529060405290505b60006060896001600160a01b031689846040518082805190602001908083835b60208310610b485780518252601f199092019160209182019101610b29565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875a610b8161199c565b505050505050925050503d8060008114610bb7576040513d603f01601f191681016040523d815291503d6000602084013e610bbc565b606091505b509150915081610c065760405162461bcd60e51b815260040180806020018281038252603d815260200180611c95603d913960400191505060405180910390610c0361183d565b50505b896001600160a01b0316847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78b8b8b8b604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610c83578082015183820152602001610c6b565b50505050905090810190601f168015610cb05780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b83811015610ce6578082015183820152602001610cce565b50505050905090810190601f168015610d135780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a39998505050505050505050565b60006001610d3d6118a8565b906101000a90046001600160a01b03166001600160a01b03165a610d5f611908565b6001600160a01b031614610dad5760405162461bcd60e51b8152600401808060200182810382526038815260200180611bef6038913960400191505060405180910390610daa61183d565b50505b5a610db6611908565b6000600181610dc36118a8565b816001600160a01b0302191690836001600160a01b0316021790610de561194e565b5050506000600160006101000a81610dfb6118a8565b816001600160a01b0302191690836001600160a01b0316021790610e1d61194e565b50505060008090610e2c6118a8565b906101000a90046001600160a01b03166001600160a01b03167f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c60405160405180910390a2565b60006001610e7f6118a8565b906101000a90046001600160a01b031681565b60008080610e9e6118a8565b906101000a90046001600160a01b03166001600160a01b03165a610ec0611908565b6001600160a01b031614610f0e5760405162461bcd60e51b8152600401808060200182810382526036815260200180611c5f6036913960400191505060405180910390610f0b61183d565b50505b610f2f6002610f1b6118a8565b610f236117c6565b9063ffffffff6117d616565b821015610f765760405162461bcd60e51b8152600401808060200182810382526049815260200180611cd26049913960600191505060405180910390610f7361183d565b50505b6000868686868660405160200180866001600160a01b03166001600160a01b031681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610fe5578082015183820152602001610fcd565b50505050905090810190601f1680156110125780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b83811015611048578082015183820152602001611030565b50505050905090810190601f1680156110755780820380516001836020036101000a031916815260200191505b509750505050505050506040516020818303038152906040528051906020012060008181526003602052909150600190604090206001816110b46118a8565b8160ff021916908315150217906110c961194e565b505050866001600160a01b0316817f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f88888888604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015611149578082015183820152602001611131565b50505050905090810190601f1680156111765780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156111ac578082015183820152602001611194565b50505050905090810190601f1680156111d95780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a39695505050505050565b5a63996d79a5598160e01b8152602081600483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c528051925060005b604081101561124a57600082820152602001611233565b5050506001600160a01b03165a61125f611908565b6001600160a01b0316146112ad5760405162461bcd60e51b8152600401808060200182810382526038815260200180611c2760389139604001915050604051809103906112aa61183d565b50505b80600180806112ba6118a8565b816001600160a01b0302191690836001600160a01b03160217906112dc61194e565b50505060016000906112ec6118a8565b906101000a90046001600160a01b03166001600160a01b03167f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75660405160405180910390a250565b60008061133f6118a8565b906101000a90046001600160a01b03166001600160a01b03165a611361611908565b6001600160a01b0316146113af5760405162461bcd60e51b8152600401808060200182810382526037815260200180611acb60379139604001915050604051809103906113ac61183d565b50505b6000858585858560405160200180866001600160a01b03166001600160a01b031681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561141e578082015183820152602001611406565b50505050905090810190601f16801561144b5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b83811015611481578082015183820152602001611469565b50505050905090810190601f1680156114ae5780820380516001836020036101000a031916815260200191505b509750505050505050506040516020818303038152906040528051906020012060008181526003602052909150604081206001816114ea6118a8565b8160ff021916908315150217906114ff61194e565b505050856001600160a01b0316817f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8787878787604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561157f578082015183820152602001611567565b50505050905090810190601f1680156115ac5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156115e25780820151838201526020016115ca565b50505050905090810190601f16801561160f5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a3505050505050565b60026116326118a8565b81565b62278d0081565b600081565b6212750081565b5a63996d79a5598160e01b8152602081600483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c528051925060005b604081101561169e57600082820152602001611687565b5050506001600160a01b03165a6116b3611908565b6001600160a01b0316146117015760405162461bcd60e51b8152600401808060200182810382526031815260200180611d1b60319139604001915050604051809103906116fe61183d565b50505b62278d0081111561174c5760405162461bcd60e51b8152600401808060200182810382526038815260200180611b7a603891396040019150506040518091039061174961183d565b50505b8080600261175861194e565b50505060026117656118a8565b7f948b1f6a42ee138b7e34058ba85a37f716d55ff25ff05a763f15bed6a04c8d2c60405160405180910390a250565b6003602052806000526040600020600091506117ae6118a8565b906101000a900460ff1681565b600080610e7f6118a8565b60005a6117d1611a4c565b905090565b6000828201838110156118365760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b60448201526064016040518091039061183361183d565b50505b9392505050565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561187557808601518282016040015260200161185a565b506020828760640184336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c52505050565b6303daa959598160e01b8152836004820152602081602483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c528051935060005b6040811015611903576000828201526020016118ec565b505050565b6373509064598160e01b8152602081600483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c52805160008252935060206118ec565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c526000815260206118ec565b6385979f76598160e01b8152836004820152846024820152606060448201528760648201526084810160005b898110156119e05780890151828201526020016119c8565b506060828a60a40184336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c52815160408301513d6000853e8c8c82606087013350600060045af15059845b81811015611a415760008152602001611a2d565b50919c505050505050565b63bdbf8c36598160e01b8152602081600483336000905af158601d01573d60011458600c01573d6000803e3d621234565260ea61109c52805160008252935060206118ec56fe54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206973207374616c652e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774207375727061737365642074696d65206c6f636b2e54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774206265656e207175657565642e54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737420636f6d652066726f6d2070656e64696e6741646d696e2e54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2e54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e20657865637574696f6e2072657665727465642e54696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374696d6174656420657865637574696f6e20626c6f636b206d75737420736174697366792064656c61792e54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2e", + "sourceMap": "52:4645:5:-;;;947:307;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;947:307:5;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;;:::i;:::-;;;2:2;947:307:5;;;;;;;;;;;;;;-1:-1:-1;1005:91:5;;-1:-1:-1;;1005:91:5;;791:7;1114:6;:23;;1106:92;;;;-1:-1:-1;;;1106:92:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;1217:6;1209:5;:14;:5;:14;;:::i;:::-;;-1:-1:-1;;;;;1209:14:5;;;;;-1:-1:-1;;;;;1209:14:5;;;;;;:::i;:::-;;;;1241:6;1233:5;:14;;;;:::i;:::-;;;;947:307;;52:4645;;;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;242:1;231:9;227:17;295:4;284:9;277:23;362:6;355:4;344:9;340:20;333:36;424:1;407:143;436:6;431:3;428:15;407:143;;;536:3;528:6;524:16;518:23;486:30;;;505:4;486:30;479:63;462:4;453:14;407:143;;;411:16;720:4;709:9;700:6;694:4;690:17;679:9;674:51;;;;;;;;;;;;;;;;;;;;;;;;;;0:821;;;52:4645:5:o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;184:2;180:1;169:9;165:17;158:29;252:2;241:9;237:2;226:9;221:34;;;;;;;;;;;;;;;;;;;;;;;;;;271:9;265:16;259:22;;521:1;504:100;533:4;528:3;525:13;504:100;;;598:1;577:19;;;570:30;557:4;548:14;504:100;;;508:16;0:607;;52:4645:5:o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;184:2;180:1;169:9;165:17;158:29;219:2;212:4;201:9;197:20;190:32;284:1;273:9;269:2;258:9;253:33;;;;;;;;;;;;;;;;;;;;;;;;;;530:1;579:30;;566:4;513:100;;52:4645:5;;;;;;;", + "deployedSourceMap": "52:4645:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3239:1291;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;;:::i;:::-;;;2:2;-1:-1;;;;;3239:1291:5;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;;:::i;:::-;;;2:2;3239:1291:5;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;;:::i;:::-;;;2:2;3239:1291:5;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;;:::i;:::-;;;8:2;3239:1291:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;3239:1291:5;;;;;;;;-1:-1:-1;3239:1291:5;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;;:::i;:::-;;;2:2;3239:1291:5;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;;:::i;:::-;;;2:2;3239:1291:5;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;;:::i;:::-;;;8:2;3239:1291:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;3239:1291:5;;-1:-1:-1;;3239:1291:5;;;-1:-1:-1;3239:1291:5;;-1:-1:-1;;3239:1291:5:i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3239:1291:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1702:236;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;1702:236:5;;;:::i;831:27::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;831:27:5;;;:::i;:::-;;;-1:-1:-1;;;;;831:27:5;;;;;;;;;;;;;;2201:598;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;2201:598:5;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;;:::i;:::-;;;2:2;-1:-1;;;;;2201:598:5;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;;:::i;:::-;;;2:2;2201:598:5;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;;:::i;:::-;;;2:2;2201:598:5;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;;:::i;:::-;;;8:2;2201:598:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;2201:598:5;;;;;;;;-1:-1:-1;2201:598:5;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;;:::i;:::-;;;2:2;2201:598:5;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;;:::i;:::-;;;2:2;2201:598:5;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;;:::i;:::-;;;8:2;2201:598:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;2201:598:5;;-1:-1:-1;;2201:598:5;;;-1:-1:-1;2201:598:5;;-1:-1:-1;;2201:598:5:i;:::-;;;;;;;;;;;;;;;1944:251;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;1944:251:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;;:::i;:::-;;;2:2;-1:-1;1944:251:5;-1:-1:-1;;;;;1944:251:5;;:::i;2805:428::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;2805:428:5;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;;:::i;:::-;;;2:2;-1:-1;;;;;2805:428:5;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;;:::i;:::-;;;2:2;2805:428:5;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;;:::i;:::-;;;2:2;2805:428:5;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;;:::i;:::-;;;8:2;2805:428:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;2805:428:5;;;;;;;;-1:-1:-1;2805:428:5;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;;:::i;:::-;;;2:2;2805:428:5;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;;:::i;:::-;;;2:2;2805:428:5;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;;:::i;:::-;;;8:2;2805:428:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;2805:428:5;;-1:-1:-1;;2805:428:5;;;-1:-1:-1;2805:428:5;;-1:-1:-1;;2805:428:5:i;864:17::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;864:17:5;;;:::i;754:44::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;754:44:5;;;:::i;694:43::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;694:43:5;;;:::i;645:::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;645:43:5;;;:::i;1297:399::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;1297:399:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;;:::i;:::-;;;2:2;-1:-1;1297:399:5;;:::i;888:51::-;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;888:51:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;;:::i;:::-;;;2:2;-1:-1;888:51:5;;:::i;:::-;;;;;;;;;;;;;;;;;805:20;;8:9:-1;5:2;;;30:1;27;20:12;;:::i;:::-;;;5:2;805:20:5;;;:::i;3239:1291::-;3373:12;3419:5;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3419:5:5;-1:-1:-1;;;;;3405:19:5;:10;;;:::i;:::-;-1:-1:-1;;;;;3405:19:5;;3397:88;;;;-1:-1:-1;;;3397:88:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;3496:14;3534:6;3542:5;3549:9;3560:4;3566:3;3523:47;;;;;;-1:-1:-1;;;;;3523:47:5;-1:-1:-1;;;;;3523:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3523:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3523:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3523:47:5;;;3513:58;;;;;;3589:26;;;;:18;:26;;3496:75;;-1:-1:-1;3589:26:5;;;;;;;:::i;:::-;;;;;;;;3581:100;;;;-1:-1:-1;;;3581:100:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;3722:3;3699:19;:17;:19::i;:::-;:26;;3691:108;;;;-1:-1:-1;;;3691:108:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;3840:21;:3;681:7;3840:21;:7;:21;:::i;:::-;3817:19;:17;:19::i;:::-;:44;;3809:108;;;;-1:-1:-1;;;3809:108:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;3957:5;3928:26;;;:18;:26;;;3957:5;3928:26;:34;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;3973:21;4015:9;4009:23;4005:175;;-1:-1:-1;4064:4:5;4005:175;;;4150:9;4134:27;;;;;;4164:4;4110:59;;-1:-1:-1;;;;;;4110:59:5;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;377:20;365:33;;;-1:-1;;;4110:59:5;;;;;-1:-1:-1;4110:59:5;;-1:-1:-1;;;4110:59:5;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4110:59:5;;;4099:70;;4005:175;4250:12;4264:23;4291:6;-1:-1:-1;;;;;4291:11:5;4309:5;4316:8;4291:34;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4291:34:5;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;115:16;133:4;111:27;-1:-1;;107:43;100:51;;94:4;87:65;169:16;159:27;;64:16;-1:-1;225:16;222:1;215:4;208:12;;193:49;7:242;;16:31;36:4;31:9;;7:242;;4249:76:5;;;;4343:7;4335:81;;;;-1:-1:-1;;;4335:81:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4459:6;-1:-1:-1;;;;;4432:63:5;4451:6;4432:63;4467:5;4474:9;4485:4;4491:3;4432:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4432:63:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4432:63:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4513:10;3239:1291;-1:-1:-1;;;;;;;;;3239:1291:5:o;1702:236::-;1764:12;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1764:12:5;-1:-1:-1;;;;;1750:26:5;:10;;;:::i;:::-;-1:-1:-1;;;;;1750:26:5;;1742:95;;;;-1:-1:-1;;;1742:95:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;1855:10;;;:::i;:::-;1847:5;:18;:5;:18;;:::i;:::-;;-1:-1:-1;;;;;1847:18:5;;;;;-1:-1:-1;;;;;1847:18:5;;;;;;:::i;:::-;;;;1898:1;1875:12;;:25;;;;;:::i;:::-;;-1:-1:-1;;;;;1875:25:5;;;;;-1:-1:-1;;;;;1875:25:5;;;;;;:::i;:::-;;;;1925:5;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1925:5:5;-1:-1:-1;;;;;1916:15:5;;;;;;;;;;;1702:236::o;831:27::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;831:27:5;;:::o;2201:598::-;2325:7;;;2366:5;;:::i;:::-;;;;;;-1:-1:-1;;;;;2366:5:5;-1:-1:-1;;;;;2352:19:5;:10;;;:::i;:::-;-1:-1:-1;;;;;2352:19:5;;2344:86;;;;-1:-1:-1;;;2344:86:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;2455:30;2479:5;;;:::i;:::-;2455:19;:17;:19::i;:::-;:23;:30;:23;:30;:::i;:::-;2448:3;:37;;2440:123;;;;-1:-1:-1;;;2440:123:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;2574:14;2612:6;2620:5;2627:9;2638:4;2644:3;2601:47;;;;;;-1:-1:-1;;;;;2601:47:5;-1:-1:-1;;;;;2601:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2601:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2601:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2601:47:5;;;2591:58;;;;;;2659:26;;;;:18;:26;;2574:75;;-1:-1:-1;2688:4:5;;2659:26;;;:33;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;2733:6;-1:-1:-1;;;;;2708:61:5;2725:6;2708:61;2741:5;2748:9;2759:4;2765:3;2708:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2708:61:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2708:61:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2786:6;2201:598;-1:-1:-1;;;;;;2201:598:5:o;1944:251::-;2039:4;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;222:2;211:9;208:1;197:9;192:33;;;;;;;;;;;;;;;;;;;;;;;;;;241:9;235:16;229:22;;491:1;474:100;503:4;498:3;495:13;474:100;;;568:1;547:19;;;540:30;527:4;518:14;474:100;;;478:16;0:577;;-1:-1;;;;;2017:27:5;:10;;;:::i;:::-;-1:-1:-1;;;;;2017:27:5;;2009:96;;;;-1:-1:-1;;;2009:96:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;2130:13;2115:12;;;:28;;:::i;:::-;;-1:-1:-1;;;;;2115:28:5;;;;;-1:-1:-1;;;;;2115:28:5;;;;;;:::i;:::-;;;;2175:12;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2175:12:5;-1:-1:-1;;;;;2159:29:5;;;;;;;;;;;1944:251;:::o;2805:428::-;2953:5;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2953:5:5;-1:-1:-1;;;;;2939:19:5;:10;;;:::i;:::-;-1:-1:-1;;;;;2939:19:5;;2931:87;;;;-1:-1:-1;;;2931:87:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;3029:14;3067:6;3075:5;3082:9;3093:4;3099:3;3056:47;;;;;;-1:-1:-1;;;;;3056:47:5;-1:-1:-1;;;;;3056:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3056:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3056:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3056:47:5;;;3046:58;;;;;;3143:5;3114:26;;;:18;:26;;3029:75;;-1:-1:-1;3114:26:5;3143:5;3114:26;:34;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;3190:6;-1:-1:-1;;;;;3164:62:5;3182:6;3164:62;3198:5;3205:9;3216:4;3222:3;3164:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3164:62:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3164:62:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2805:428;;;;;;:::o;864:17::-;;;;:::i;:::-;;:::o;754:44::-;791:7;754:44;:::o;694:43::-;731:6;694:43;:::o;645:::-;681:7;645:43;:::o;1297:399::-;1375:4;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;222:2;211:9;208:1;197:9;192:33;;;;;;;;;;;;;;;;;;;;;;;;;;241:9;235:16;229:22;;491:1;474:100;503:4;498:3;495:13;474:100;;;568:1;547:19;;;540:30;527:4;518:14;474:100;;;478:16;0:577;;-1:-1;;;;;1353:27:5;:10;;;:::i;:::-;-1:-1:-1;;;;;1353:27:5;;1345:89;;;;-1:-1:-1;;;1345:89:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;791:7;1550:6;:23;;1542:92;;;;-1:-1:-1;;;1542:92:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;1652:6;;1644:5;:14;;:::i;:::-;;;;1683:5;;;:::i;:::-;1674:15;;;;;;;;;;1297:399;:::o;888:51::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;805:20::-;;;;;:::i;4536:159::-;4588:4;4673:15;;;:::i;:::-;4666:22;;4536:159;:::o;959:176:4:-;1017:7;1048:5;;;1071:6;;;;1063:46;;;;-1:-1:-1;;;1063:46:4;;;;;;;;;;;;-1:-1:-1;;;1063:46:4;;;;;;;;;;;;;;:::i;:::-;;;;1127:1;959:176;-1:-1:-1;;;959:176:4:o;52:4645:5:-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;242:1;231:9;227:17;295:4;284:9;277:23;362:6;355:4;344:9;340:20;333:36;424:1;407:143;436:6;431:3;428:15;407:143;;;536:3;528:6;524:16;518:23;486:30;;;505:4;486:30;479:63;462:4;453:14;407:143;;;411:16;720:4;709:9;700:6;694:4;690:17;679:9;674:51;;;;;;;;;;;;;;;;;;;;;;;;;;0:821;;;52:4645:5:o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;184:2;180:1;169:9;165:17;158:29;252:2;241:9;237:2;226:9;221:34;;;;;;;;;;;;;;;;;;;;;;;;;;271:9;265:16;259:22;;521:1;504:100;533:4;528:3;525:13;504:100;;;598:1;577:19;;;570:30;557:4;548:14;504:100;;;508:16;0:607;;52:4645:5:o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;222:2;211:9;208:1;197:9;192:33;;;;;;;;;;;;;;;;;;;;;;;;;;241:9;235:16;491:1;540:30;;229:22;-1:-1;527:4;474:100;;52:4645:5;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;184:2;180:1;169:9;165:17;158:29;219:2;212:4;201:9;197:20;190:32;284:1;273:9;269:2;258:9;253:33;;;;;;;;;;;;;;;;;;;;;;;;;;530:1;579:30;;566:4;513:100;;52:4645:5;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;208:6;201:4;190:9;186:20;179:36;267:4;260;249:9;245:20;238:34;338:4;331;320:9;316:20;309:34;416:10;409:4;398:9;394:20;387:40;508:4;497:9;493:20;533:1;516:135;545:10;540:3;537:19;516:135;;;641:3;629:10;625:20;619:27;595:22;;;588:59;575:4;566:14;516:135;;;520:16;1050:4;1039:9;1026:10;1020:4;1016:21;1005:9;1000:55;;;;;;;;;;;;;;;;;;;;;;;;;;1100:9;1094:16;1209:4;1198:9;1194:20;1188:27;1450:16;1447:1;1436:9;1421:46;1535:9;1524;1497:25;1490:4;1479:9;1475:20;1470:75;;;;;;;1612:7;1639:9;1622:101;1659:10;1654:3;1651:19;1622:101;;;1714:4;1702:17;;1689:4;1680:14;1622:101;;;-1:-1;1881:10;;-1:-1;;;;;;52:4645:5:o;:::-;20:10:-1;50:7;143:8;138:3;134:18;123:9;116:37;222:2;211:9;208:1;197:9;192:33;;;;;;;;;;;;;;;;;;;;;;;;;;241:9;235:16;491:1;540:30;;229:22;-1:-1;527:4;474:100;", + "source": "pragma solidity ^0.5.16;\n\nimport \"./SafeMath.sol\";\n\ncontract Timelock {\n using SafeMath for uint;\n\n event NewAdmin(address indexed newAdmin);\n event NewPendingAdmin(address indexed newPendingAdmin);\n event NewDelay(uint indexed newDelay);\n event CancelTransaction(bytes32 indexed txHash, address indexed target, uint value, string signature, bytes data, uint eta);\n event ExecuteTransaction(bytes32 indexed txHash, address indexed target, uint value, string signature, bytes data, uint eta);\n event QueueTransaction(bytes32 indexed txHash, address indexed target, uint value, string signature, bytes data, uint eta);\n\n uint public constant GRACE_PERIOD = 14 days;\n uint public constant MINIMUM_DELAY = 0 days; // 2 days;\n uint public constant MAXIMUM_DELAY = 30 days;\n\n address public admin;\n address public pendingAdmin;\n uint public delay;\n\n mapping (bytes32 => bool) public queuedTransactions;\n\n\n constructor(address admin_, uint delay_) public {\n require(delay_ >= MINIMUM_DELAY, \"Timelock::constructor: Delay must exceed minimum delay.\");\n require(delay_ <= MAXIMUM_DELAY, \"Timelock::setDelay: Delay must not exceed maximum delay.\");\n\n admin = admin_;\n delay = delay_;\n }\n\n function() external payable { }\n\n function setDelay(uint delay_) public {\n require(msg.sender == address(this), \"Timelock::setDelay: Call must come from Timelock.\");\n require(delay_ >= MINIMUM_DELAY, \"Timelock::setDelay: Delay must exceed minimum delay.\");\n require(delay_ <= MAXIMUM_DELAY, \"Timelock::setDelay: Delay must not exceed maximum delay.\");\n delay = delay_;\n\n emit NewDelay(delay);\n }\n\n function acceptAdmin() public {\n require(msg.sender == pendingAdmin, \"Timelock::acceptAdmin: Call must come from pendingAdmin.\");\n admin = msg.sender;\n pendingAdmin = address(0);\n\n emit NewAdmin(admin);\n }\n\n function setPendingAdmin(address pendingAdmin_) public {\n require(msg.sender == address(this), \"Timelock::setPendingAdmin: Call must come from Timelock.\");\n pendingAdmin = pendingAdmin_;\n\n emit NewPendingAdmin(pendingAdmin);\n }\n\n function queueTransaction(address target, uint value, string memory signature, bytes memory data, uint eta) public returns (bytes32) {\n require(msg.sender == admin, \"Timelock::queueTransaction: Call must come from admin.\");\n require(eta >= getBlockTimestamp().add(delay), \"Timelock::queueTransaction: Estimated execution block must satisfy delay.\");\n\n bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\n queuedTransactions[txHash] = true;\n\n emit QueueTransaction(txHash, target, value, signature, data, eta);\n return txHash;\n }\n\n function cancelTransaction(address target, uint value, string memory signature, bytes memory data, uint eta) public {\n require(msg.sender == admin, \"Timelock::cancelTransaction: Call must come from admin.\");\n\n bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\n queuedTransactions[txHash] = false;\n\n emit CancelTransaction(txHash, target, value, signature, data, eta);\n }\n\n function executeTransaction(address target, uint value, string memory signature, bytes memory data, uint eta) public payable returns (bytes memory) {\n require(msg.sender == admin, \"Timelock::executeTransaction: Call must come from admin.\");\n\n bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\n require(queuedTransactions[txHash], \"Timelock::executeTransaction: Transaction hasn't been queued.\");\n require(getBlockTimestamp() >= eta, \"Timelock::executeTransaction: Transaction hasn't surpassed time lock.\");\n require(getBlockTimestamp() <= eta.add(GRACE_PERIOD), \"Timelock::executeTransaction: Transaction is stale.\");\n\n queuedTransactions[txHash] = false;\n\n bytes memory callData;\n\n if (bytes(signature).length == 0) {\n callData = data;\n } else {\n callData = abi.encodePacked(bytes4(keccak256(bytes(signature))), data);\n }\n\n // solium-disable-next-line security/no-call-value\n (bool success, bytes memory returnData) = target.call.value(value)(callData);\n require(success, \"Timelock::executeTransaction: Transaction execution reverted.\");\n\n emit ExecuteTransaction(txHash, target, value, signature, data, eta);\n\n return returnData;\n }\n\n function getBlockTimestamp() internal view returns (uint) {\n // solium-disable-next-line security/no-block-members\n return block.timestamp;\n }\n}", + "sourcePath": "/Users/janliphardt/Documents/GitHub/optimism/omgx_examples/compound-simple/contracts/Timelock.sol", + "ast": { + "absolutePath": "project:/contracts/Timelock.sol", + "exportedSymbols": { + "Timelock": [ + 3340 + ] + }, + "id": 3341, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2888, + "literals": [ + "solidity", + "^", + "0.5", + ".16" + ], + "nodeType": "PragmaDirective", + "src": "0:24:5" + }, + { + "absolutePath": "project:/contracts/SafeMath.sol", + "file": "./SafeMath.sol", + "id": 2889, + "nodeType": "ImportDirective", + "scope": 3341, + "sourceUnit": 2887, + "src": "26:24:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3340, + "linearizedBaseContracts": [ + 3340 + ], + "name": "Timelock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2892, + "libraryName": { + "contractScope": null, + "id": 2890, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2886, + "src": "82:8:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$2886", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "76:24:5", + "typeName": { + "id": 2891, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "95:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "anonymous": false, + "documentation": null, + "id": 2896, + "name": "NewAdmin", + "nodeType": "EventDefinition", + "parameters": { + "id": 2895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2894, + "indexed": true, + "name": "newAdmin", + "nodeType": "VariableDeclaration", + "scope": 2896, + "src": "121:24:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2893, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "121:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "120:26:5" + }, + "src": "106:41:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 2900, + "name": "NewPendingAdmin", + "nodeType": "EventDefinition", + "parameters": { + "id": 2899, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2898, + "indexed": true, + "name": "newPendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 2900, + "src": "174:31:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2897, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "174:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "173:33:5" + }, + "src": "152:55:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 2904, + "name": "NewDelay", + "nodeType": "EventDefinition", + "parameters": { + "id": 2903, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2902, + "indexed": true, + "name": "newDelay", + "nodeType": "VariableDeclaration", + "scope": 2904, + "src": "227:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2901, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "227:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "226:23:5" + }, + "src": "212:38:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 2918, + "name": "CancelTransaction", + "nodeType": "EventDefinition", + "parameters": { + "id": 2917, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2906, + "indexed": true, + "name": "txHash", + "nodeType": "VariableDeclaration", + "scope": 2918, + "src": "279:22:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2905, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "279:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2908, + "indexed": true, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2918, + "src": "303:22:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2907, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "303:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2910, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2918, + "src": "327:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2909, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "327:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2912, + "indexed": false, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2918, + "src": "339:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2911, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "339:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2914, + "indexed": false, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2918, + "src": "358:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2913, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "358:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2916, + "indexed": false, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2918, + "src": "370:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2915, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "370:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "278:101:5" + }, + "src": "255:125:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 2932, + "name": "ExecuteTransaction", + "nodeType": "EventDefinition", + "parameters": { + "id": 2931, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2920, + "indexed": true, + "name": "txHash", + "nodeType": "VariableDeclaration", + "scope": 2932, + "src": "410:22:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2919, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "410:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2922, + "indexed": true, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2932, + "src": "434:22:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2921, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "434:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2924, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2932, + "src": "458:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2923, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "458:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2926, + "indexed": false, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2932, + "src": "470:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2925, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "470:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2928, + "indexed": false, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2932, + "src": "489:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2927, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "489:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2930, + "indexed": false, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2932, + "src": "501:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2929, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "501:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "409:101:5" + }, + "src": "385:126:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 2946, + "name": "QueueTransaction", + "nodeType": "EventDefinition", + "parameters": { + "id": 2945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2934, + "indexed": true, + "name": "txHash", + "nodeType": "VariableDeclaration", + "scope": 2946, + "src": "539:22:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2933, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "539:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2936, + "indexed": true, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2946, + "src": "563:22:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2935, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "563:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2938, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2946, + "src": "587:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2937, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "587:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2940, + "indexed": false, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2946, + "src": "599:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2939, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "599:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2942, + "indexed": false, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2946, + "src": "617:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2941, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "617:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2944, + "indexed": false, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2946, + "src": "629:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2943, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "629:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "538:100:5" + }, + "src": "516:123:5" + }, + { + "constant": true, + "id": 2949, + "name": "GRACE_PERIOD", + "nodeType": "VariableDeclaration", + "scope": 3340, + "src": "645:43:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2947, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "645:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3134", + "id": 2948, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "681:7:5", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_1209600_by_1", + "typeString": "int_const 1209600" + }, + "value": "14" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 2952, + "name": "MINIMUM_DELAY", + "nodeType": "VariableDeclaration", + "scope": 3340, + "src": "694:43:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2950, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "694:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 2951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "731:6:5", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 2955, + "name": "MAXIMUM_DELAY", + "nodeType": "VariableDeclaration", + "scope": 3340, + "src": "754:44:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2953, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "754:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3330", + "id": 2954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "791:7:5", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_2592000_by_1", + "typeString": "int_const 2592000" + }, + "value": "30" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 2957, + "name": "admin", + "nodeType": "VariableDeclaration", + "scope": 3340, + "src": "805:20:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2956, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "805:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2959, + "name": "pendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 3340, + "src": "831:27:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2958, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "831:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2961, + "name": "delay", + "nodeType": "VariableDeclaration", + "scope": 3340, + "src": "864:17:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2960, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "864:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2965, + "name": "queuedTransactions", + "nodeType": "VariableDeclaration", + "scope": 3340, + "src": "888:51:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "typeName": { + "id": 2964, + "keyType": { + "id": 2962, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "897:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "888:25:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "valueType": { + "id": 2963, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "908:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 2994, + "nodeType": "Block", + "src": "995:259:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2973, + "name": "delay_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2969, + "src": "1013:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 2974, + "name": "MINIMUM_DELAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2952, + "src": "1023:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1013:23:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e", + "id": 2976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1038:57:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f", + "typeString": "literal_string \"Timelock::constructor: Delay must exceed minimum delay.\"" + }, + "value": "Timelock::constructor: Delay must exceed minimum delay." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f", + "typeString": "literal_string \"Timelock::constructor: Delay must exceed minimum delay.\"" + } + ], + "id": 2972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "1005:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1005:91:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2978, + "nodeType": "ExpressionStatement", + "src": "1005:91:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2980, + "name": "delay_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2969, + "src": "1114:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 2981, + "name": "MAXIMUM_DELAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2955, + "src": "1124:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1114:23:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e", + "id": 2983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1139:58:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0", + "typeString": "literal_string \"Timelock::setDelay: Delay must not exceed maximum delay.\"" + }, + "value": "Timelock::setDelay: Delay must not exceed maximum delay." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0", + "typeString": "literal_string \"Timelock::setDelay: Delay must not exceed maximum delay.\"" + } + ], + "id": 2979, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "1106:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1106:92:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2985, + "nodeType": "ExpressionStatement", + "src": "1106:92:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 2988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2986, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2957, + "src": "1209:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2987, + "name": "admin_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2967, + "src": "1217:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1209:14:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2989, + "nodeType": "ExpressionStatement", + "src": "1209:14:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 2992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2990, + "name": "delay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2961, + "src": "1233:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2991, + "name": "delay_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2969, + "src": "1241:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1233:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2993, + "nodeType": "ExpressionStatement", + "src": "1233:14:5" + } + ] + }, + "documentation": null, + "id": 2995, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2967, + "name": "admin_", + "nodeType": "VariableDeclaration", + "scope": 2995, + "src": "959:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2966, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "959:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2969, + "name": "delay_", + "nodeType": "VariableDeclaration", + "scope": 2995, + "src": "975:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2968, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "975:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "958:29:5" + }, + "returnParameters": { + "id": 2971, + "nodeType": "ParameterList", + "parameters": [], + "src": "995:0:5" + }, + "scope": 3340, + "src": "947:307:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2998, + "nodeType": "Block", + "src": "1288:3:5", + "statements": [] + }, + "documentation": null, + "id": 2999, + "implemented": true, + "kind": "fallback", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2996, + "nodeType": "ParameterList", + "parameters": [], + "src": "1268:2:5" + }, + "returnParameters": { + "id": 2997, + "nodeType": "ParameterList", + "parameters": [], + "src": "1288:0:5" + }, + "scope": 3340, + "src": "1260:31:5", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 3036, + "nodeType": "Block", + "src": "1335:361:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 3010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3005, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "1353:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1353:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3008, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3387, + "src": "1375:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Timelock_$3340", + "typeString": "contract Timelock" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Timelock_$3340", + "typeString": "contract Timelock" + } + ], + "id": 3007, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1367:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1367:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1353:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2e", + "id": 3011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1382:51:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d", + "typeString": "literal_string \"Timelock::setDelay: Call must come from Timelock.\"" + }, + "value": "Timelock::setDelay: Call must come from Timelock." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d", + "typeString": "literal_string \"Timelock::setDelay: Call must come from Timelock.\"" + } + ], + "id": 3004, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "1345:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1345:89:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3013, + "nodeType": "ExpressionStatement", + "src": "1345:89:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3015, + "name": "delay_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3001, + "src": "1452:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3016, + "name": "MINIMUM_DELAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2952, + "src": "1462:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1452:23:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54696d656c6f636b3a3a73657444656c61793a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e", + "id": 3018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1477:54:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d", + "typeString": "literal_string \"Timelock::setDelay: Delay must exceed minimum delay.\"" + }, + "value": "Timelock::setDelay: Delay must exceed minimum delay." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d", + "typeString": "literal_string \"Timelock::setDelay: Delay must exceed minimum delay.\"" + } + ], + "id": 3014, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "1444:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1444:88:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3020, + "nodeType": "ExpressionStatement", + "src": "1444:88:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3022, + "name": "delay_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3001, + "src": "1550:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 3023, + "name": "MAXIMUM_DELAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2955, + "src": "1560:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1550:23:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e", + "id": 3025, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1575:58:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0", + "typeString": "literal_string \"Timelock::setDelay: Delay must not exceed maximum delay.\"" + }, + "value": "Timelock::setDelay: Delay must not exceed maximum delay." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0", + "typeString": "literal_string \"Timelock::setDelay: Delay must not exceed maximum delay.\"" + } + ], + "id": 3021, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "1542:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3026, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1542:92:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3027, + "nodeType": "ExpressionStatement", + "src": "1542:92:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3028, + "name": "delay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2961, + "src": "1644:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3029, + "name": "delay_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3001, + "src": "1652:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1644:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3031, + "nodeType": "ExpressionStatement", + "src": "1644:14:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3033, + "name": "delay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2961, + "src": "1683:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3032, + "name": "NewDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2904, + "src": "1674:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 3034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1674:15:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3035, + "nodeType": "EmitStatement", + "src": "1669:20:5" + } + ] + }, + "documentation": null, + "id": 3037, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setDelay", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3002, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3001, + "name": "delay_", + "nodeType": "VariableDeclaration", + "scope": 3037, + "src": "1315:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3000, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1315:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1314:13:5" + }, + "returnParameters": { + "id": 3003, + "nodeType": "ParameterList", + "parameters": [], + "src": "1335:0:5" + }, + "scope": 3340, + "src": "1297:399:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3063, + "nodeType": "Block", + "src": "1732:206:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3041, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "1750:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1750:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 3043, + "name": "pendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2959, + "src": "1764:12:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1750:26:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737420636f6d652066726f6d2070656e64696e6741646d696e2e", + "id": 3045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1778:58:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3", + "typeString": "literal_string \"Timelock::acceptAdmin: Call must come from pendingAdmin.\"" + }, + "value": "Timelock::acceptAdmin: Call must come from pendingAdmin." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3", + "typeString": "literal_string \"Timelock::acceptAdmin: Call must come from pendingAdmin.\"" + } + ], + "id": 3040, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "1742:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1742:95:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3047, + "nodeType": "ExpressionStatement", + "src": "1742:95:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3048, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2957, + "src": "1847:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3049, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "1855:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1855:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1847:18:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3052, + "nodeType": "ExpressionStatement", + "src": "1847:18:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3053, + "name": "pendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2959, + "src": "1875:12:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3055, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1898:1:5", + "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": 3054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1890:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3056, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1890:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1875:25:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3058, + "nodeType": "ExpressionStatement", + "src": "1875:25:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3060, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2957, + "src": "1925:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3059, + "name": "NewAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "1916:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 3061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1916:15:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3062, + "nodeType": "EmitStatement", + "src": "1911:20:5" + } + ] + }, + "documentation": null, + "id": 3064, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "acceptAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3038, + "nodeType": "ParameterList", + "parameters": [], + "src": "1722:2:5" + }, + "returnParameters": { + "id": 3039, + "nodeType": "ParameterList", + "parameters": [], + "src": "1732:0:5" + }, + "scope": 3340, + "src": "1702:236:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3087, + "nodeType": "Block", + "src": "1999:196:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 3075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3070, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "2017:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2017:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3073, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3387, + "src": "2039:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Timelock_$3340", + "typeString": "contract Timelock" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Timelock_$3340", + "typeString": "contract Timelock" + } + ], + "id": 3072, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2031:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2031:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2017:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2e", + "id": 3076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2046:58:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815", + "typeString": "literal_string \"Timelock::setPendingAdmin: Call must come from Timelock.\"" + }, + "value": "Timelock::setPendingAdmin: Call must come from Timelock." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815", + "typeString": "literal_string \"Timelock::setPendingAdmin: Call must come from Timelock.\"" + } + ], + "id": 3069, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "2009:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2009:96:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3078, + "nodeType": "ExpressionStatement", + "src": "2009:96:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3079, + "name": "pendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2959, + "src": "2115:12:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3080, + "name": "pendingAdmin_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3066, + "src": "2130:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2115:28:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3082, + "nodeType": "ExpressionStatement", + "src": "2115:28:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3084, + "name": "pendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2959, + "src": "2175:12:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3083, + "name": "NewPendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2900, + "src": "2159:15:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 3085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2159:29:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3086, + "nodeType": "EmitStatement", + "src": "2154:34:5" + } + ] + }, + "documentation": null, + "id": 3088, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setPendingAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3067, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3066, + "name": "pendingAdmin_", + "nodeType": "VariableDeclaration", + "scope": 3088, + "src": "1969:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3065, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1969:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1968:23:5" + }, + "returnParameters": { + "id": 3068, + "nodeType": "ParameterList", + "parameters": [], + "src": "1999:0:5" + }, + "scope": 3340, + "src": "1944:251:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3152, + "nodeType": "Block", + "src": "2334:465:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3104, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "2352:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2352:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 3106, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2957, + "src": "2366:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2352:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e", + "id": 3108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2373:56:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749", + "typeString": "literal_string \"Timelock::queueTransaction: Call must come from admin.\"" + }, + "value": "Timelock::queueTransaction: Call must come from admin." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749", + "typeString": "literal_string \"Timelock::queueTransaction: Call must come from admin.\"" + } + ], + "id": 3103, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "2344:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2344:86:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3110, + "nodeType": "ExpressionStatement", + "src": "2344:86:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3112, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3098, + "src": "2448:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3116, + "name": "delay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2961, + "src": "2479:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3113, + "name": "getBlockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3339, + "src": "2455:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 3114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2455:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2663, + "src": "2455:23:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2455:30:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2448:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374696d6174656420657865637574696f6e20626c6f636b206d75737420736174697366792064656c61792e", + "id": 3119, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2487:75:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c", + "typeString": "literal_string \"Timelock::queueTransaction: Estimated execution block must satisfy delay.\"" + }, + "value": "Timelock::queueTransaction: Estimated execution block must satisfy delay." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c", + "typeString": "literal_string \"Timelock::queueTransaction: Estimated execution block must satisfy delay.\"" + } + ], + "id": 3111, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "2440:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2440:123:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3121, + "nodeType": "ExpressionStatement", + "src": "2440:123:5" + }, + { + "assignments": [ + 3123 + ], + "declarations": [ + { + "constant": false, + "id": 3123, + "name": "txHash", + "nodeType": "VariableDeclaration", + "scope": 3152, + "src": "2574:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3122, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2574:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3134, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3127, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "2612:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3128, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3092, + "src": "2620:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3129, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3094, + "src": "2627:9:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 3130, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3096, + "src": "2638:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 3131, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3098, + "src": "2644:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3125, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3342, + "src": "2601:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2601:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 3132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2601:47:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3124, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3349, + "src": "2591:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 3133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2591:58:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2574:75:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3135, + "name": "queuedTransactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2965, + "src": "2659:18:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 3137, + "indexExpression": { + "argumentTypes": null, + "id": 3136, + "name": "txHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3123, + "src": "2678:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2659:26:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2688:4:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2659:33:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3140, + "nodeType": "ExpressionStatement", + "src": "2659:33:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3142, + "name": "txHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3123, + "src": "2725:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 3143, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "2733:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3144, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3092, + "src": "2741:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3145, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3094, + "src": "2748:9:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 3146, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3096, + "src": "2759:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 3147, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3098, + "src": "2765:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3141, + "name": "QueueTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2946, + "src": "2708:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (bytes32,address,uint256,string memory,bytes memory,uint256)" + } + }, + "id": 3148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2708:61:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3149, + "nodeType": "EmitStatement", + "src": "2703:66:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3150, + "name": "txHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3123, + "src": "2786:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 3102, + "id": 3151, + "nodeType": "Return", + "src": "2779:13:5" + } + ] + }, + "documentation": null, + "id": 3153, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "queueTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3099, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3090, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 3153, + "src": "2227:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3089, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2227:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3092, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 3153, + "src": "2243:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3091, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2243:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3094, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 3153, + "src": "2255:23:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3093, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2255:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3096, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 3153, + "src": "2280:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3095, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2280:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3098, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 3153, + "src": "2299:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3097, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2299:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2226:82:5" + }, + "returnParameters": { + "id": 3102, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3101, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3153, + "src": "2325:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3100, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2325:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2324:9:5" + }, + "scope": 3340, + "src": "2201:598:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3202, + "nodeType": "Block", + "src": "2921:312:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3167, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "2939:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2939:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 3169, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2957, + "src": "2953:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2939:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e", + "id": 3171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2960:57:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d", + "typeString": "literal_string \"Timelock::cancelTransaction: Call must come from admin.\"" + }, + "value": "Timelock::cancelTransaction: Call must come from admin." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d", + "typeString": "literal_string \"Timelock::cancelTransaction: Call must come from admin.\"" + } + ], + "id": 3166, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "2931:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2931:87:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3173, + "nodeType": "ExpressionStatement", + "src": "2931:87:5" + }, + { + "assignments": [ + 3175 + ], + "declarations": [ + { + "constant": false, + "id": 3175, + "name": "txHash", + "nodeType": "VariableDeclaration", + "scope": 3202, + "src": "3029:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3174, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3029:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3186, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3179, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3155, + "src": "3067:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3180, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3157, + "src": "3075:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3181, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3159, + "src": "3082:9:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 3182, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3161, + "src": "3093:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 3183, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3163, + "src": "3099:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3177, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3342, + "src": "3056:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3056:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 3184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3056:47:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3176, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3349, + "src": "3046:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 3185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3046:58:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3029:75:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3187, + "name": "queuedTransactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2965, + "src": "3114:18:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 3189, + "indexExpression": { + "argumentTypes": null, + "id": 3188, + "name": "txHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3175, + "src": "3133:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3114:26:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 3190, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3143:5:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "3114:34:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3192, + "nodeType": "ExpressionStatement", + "src": "3114:34:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3194, + "name": "txHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3175, + "src": "3182:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 3195, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3155, + "src": "3190:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3196, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3157, + "src": "3198:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3197, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3159, + "src": "3205:9:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 3198, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3161, + "src": "3216:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 3199, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3163, + "src": "3222:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3193, + "name": "CancelTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2918, + "src": "3164:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (bytes32,address,uint256,string memory,bytes memory,uint256)" + } + }, + "id": 3200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3164:62:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3201, + "nodeType": "EmitStatement", + "src": "3159:67:5" + } + ] + }, + "documentation": null, + "id": 3203, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "cancelTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3155, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 3203, + "src": "2832:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3154, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2832:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3157, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 3203, + "src": "2848:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3156, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2848:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3159, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 3203, + "src": "2860:23:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3158, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2860:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3161, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 3203, + "src": "2885:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3160, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2885:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3163, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 3203, + "src": "2904:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3162, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2904:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2831:82:5" + }, + "returnParameters": { + "id": 3165, + "nodeType": "ParameterList", + "parameters": [], + "src": "2921:0:5" + }, + "scope": 3340, + "src": "2805:428:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3329, + "nodeType": "Block", + "src": "3387:1143:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3219, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3355, + "src": "3405:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3405:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 3221, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2957, + "src": "3419:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3405:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e", + "id": 3223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3426:58:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947", + "typeString": "literal_string \"Timelock::executeTransaction: Call must come from admin.\"" + }, + "value": "Timelock::executeTransaction: Call must come from admin." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947", + "typeString": "literal_string \"Timelock::executeTransaction: Call must come from admin.\"" + } + ], + "id": 3218, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "3397:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3397:88:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3225, + "nodeType": "ExpressionStatement", + "src": "3397:88:5" + }, + { + "assignments": [ + 3227 + ], + "declarations": [ + { + "constant": false, + "id": 3227, + "name": "txHash", + "nodeType": "VariableDeclaration", + "scope": 3329, + "src": "3496:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3226, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3496:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3238, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3231, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3205, + "src": "3534:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3232, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3207, + "src": "3542:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3233, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3209, + "src": "3549:9:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 3234, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3211, + "src": "3560:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 3235, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3213, + "src": "3566:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3229, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3342, + "src": "3523:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3523:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 3236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3523:47:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3228, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3349, + "src": "3513:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 3237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3513:58:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3496:75:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3240, + "name": "queuedTransactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2965, + "src": "3589:18:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 3242, + "indexExpression": { + "argumentTypes": null, + "id": 3241, + "name": "txHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3227, + "src": "3608:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3589:26:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774206265656e207175657565642e", + "id": 3243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3617:63:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650", + "typeString": "literal_string \"Timelock::executeTransaction: Transaction hasn't been queued.\"" + }, + "value": "Timelock::executeTransaction: Transaction hasn't been queued." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650", + "typeString": "literal_string \"Timelock::executeTransaction: Transaction hasn't been queued.\"" + } + ], + "id": 3239, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "3581:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3581:100:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3245, + "nodeType": "ExpressionStatement", + "src": "3581:100:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3247, + "name": "getBlockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3339, + "src": "3699:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 3248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3699:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3249, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3213, + "src": "3722:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3699:26:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774207375727061737365642074696d65206c6f636b2e", + "id": 3251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3727:71:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687", + "typeString": "literal_string \"Timelock::executeTransaction: Transaction hasn't surpassed time lock.\"" + }, + "value": "Timelock::executeTransaction: Transaction hasn't surpassed time lock." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687", + "typeString": "literal_string \"Timelock::executeTransaction: Transaction hasn't surpassed time lock.\"" + } + ], + "id": 3246, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "3691:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3691:108:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3253, + "nodeType": "ExpressionStatement", + "src": "3691:108:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3255, + "name": "getBlockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3339, + "src": "3817:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 3256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3817:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3259, + "name": "GRACE_PERIOD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2949, + "src": "3848:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3257, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3213, + "src": "3840:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2663, + "src": "3840:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3840:21:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3817:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206973207374616c652e", + "id": 3262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3863:53:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c", + "typeString": "literal_string \"Timelock::executeTransaction: Transaction is stale.\"" + }, + "value": "Timelock::executeTransaction: Transaction is stale." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c", + "typeString": "literal_string \"Timelock::executeTransaction: Transaction is stale.\"" + } + ], + "id": 3254, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "3809:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3809:108:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3264, + "nodeType": "ExpressionStatement", + "src": "3809:108:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3265, + "name": "queuedTransactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2965, + "src": "3928:18:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 3267, + "indexExpression": { + "argumentTypes": null, + "id": 3266, + "name": "txHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3227, + "src": "3947:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3928:26:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 3268, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3957:5:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "3928:34:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3270, + "nodeType": "ExpressionStatement", + "src": "3928:34:5" + }, + { + "assignments": [ + 3272 + ], + "declarations": [ + { + "constant": false, + "id": 3272, + "name": "callData", + "nodeType": "VariableDeclaration", + "scope": 3329, + "src": "3973:21:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3271, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3973:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3273, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "3973:21:5" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3275, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3209, + "src": "4015:9:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4009:5:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": "bytes" + }, + "id": 3276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4009:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4009:23:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4036:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4009:28:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3299, + "nodeType": "Block", + "src": "4085:95:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3285, + "name": "callData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3272, + "src": "4099:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3291, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3209, + "src": "4150:9:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3290, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4144:5:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": "bytes" + }, + "id": 3292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4144:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3289, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3349, + "src": "4134:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4134:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 3288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4127:6:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": "bytes4" + }, + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4127:35:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 3295, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3211, + "src": "4164:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 3286, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3342, + "src": "4110:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4110:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 3296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4110:59:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "4099:70:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3298, + "nodeType": "ExpressionStatement", + "src": "4099:70:5" + } + ] + }, + "id": 3300, + "nodeType": "IfStatement", + "src": "4005:175:5", + "trueBody": { + "id": 3284, + "nodeType": "Block", + "src": "4039:40:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3280, + "name": "callData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3272, + "src": "4053:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3281, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3211, + "src": "4064:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "4053:15:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3283, + "nodeType": "ExpressionStatement", + "src": "4053:15:5" + } + ] + } + }, + { + "assignments": [ + 3302, + 3304 + ], + "declarations": [ + { + "constant": false, + "id": 3302, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3329, + "src": "4250:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3301, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4250:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3304, + "name": "returnData", + "nodeType": "VariableDeclaration", + "scope": 3329, + "src": "4264:23:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3303, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4264:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3312, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3310, + "name": "callData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3272, + "src": "4316:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "arguments": [ + { + "argumentTypes": null, + "id": 3308, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3207, + "src": "4309:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3305, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3205, + "src": "4291:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4291:11:5", + "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": 3307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4291:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$", + "typeString": "function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))" + } + }, + "id": 3309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4291:24:5", + "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": 3311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4291:34:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4249:76:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3314, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "4343:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e20657865637574696f6e2072657665727465642e", + "id": 3315, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4352:63:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9", + "typeString": "literal_string \"Timelock::executeTransaction: Transaction execution reverted.\"" + }, + "value": "Timelock::executeTransaction: Transaction execution reverted." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9", + "typeString": "literal_string \"Timelock::executeTransaction: Transaction execution reverted.\"" + } + ], + "id": 3313, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "src": "4335:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4335:81:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3317, + "nodeType": "ExpressionStatement", + "src": "4335:81:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3319, + "name": "txHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3227, + "src": "4451:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 3320, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3205, + "src": "4459:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3321, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3207, + "src": "4467:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3322, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3209, + "src": "4474:9:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 3323, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3211, + "src": "4485:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 3324, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3213, + "src": "4491:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3318, + "name": "ExecuteTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2932, + "src": "4432:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (bytes32,address,uint256,string memory,bytes memory,uint256)" + } + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4432:63:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3326, + "nodeType": "EmitStatement", + "src": "4427:68:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3327, + "name": "returnData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "4513:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 3217, + "id": 3328, + "nodeType": "Return", + "src": "4506:17:5" + } + ] + }, + "documentation": null, + "id": 3330, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "executeTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3214, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3205, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 3330, + "src": "3267:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3204, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3267:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3207, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 3330, + "src": "3283:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3206, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3283:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3209, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 3330, + "src": "3295:23:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3208, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3295:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3211, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 3330, + "src": "3320:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3210, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3320:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3213, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 3330, + "src": "3339:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3212, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3339:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3266:82:5" + }, + "returnParameters": { + "id": 3217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3216, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3330, + "src": "3373:12:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3215, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3373:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3372:14:5" + }, + "scope": 3340, + "src": "3239:1291:5", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3338, + "nodeType": "Block", + "src": "4594:101:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3335, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3345, + "src": "4673:5:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 3336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4673:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3334, + "id": 3337, + "nodeType": "Return", + "src": "4666:22:5" + } + ] + }, + "documentation": null, + "id": 3339, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBlockTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3331, + "nodeType": "ParameterList", + "parameters": [], + "src": "4562:2:5" + }, + "returnParameters": { + "id": 3334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3333, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3339, + "src": "4588:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3332, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4588:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4587:6:5" + }, + "scope": 3340, + "src": "4536:159:5", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 3341, + "src": "52:4645:5" + } + ], + "src": "0:4697:5" + }, + "legacyAST": { + "attributes": { + "absolutePath": "project:/contracts/Timelock.sol", + "exportedSymbols": { + "Timelock": [ + 3340 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.5", + ".16" + ] + }, + "id": 2888, + "name": "PragmaDirective", + "src": "0:24:5" + }, + { + "attributes": { + "SourceUnit": 2887, + "absolutePath": "project:/contracts/SafeMath.sol", + "file": "./SafeMath.sol", + "scope": 3341, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 2889, + "name": "ImportDirective", + "src": "26:24:5" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 3340 + ], + "name": "Timelock", + "scope": 3341 + }, + "children": [ + { + "children": [ + { + "attributes": { + "contractScope": null, + "name": "SafeMath", + "referencedDeclaration": 2886, + "type": "library SafeMath" + }, + "id": 2890, + "name": "UserDefinedTypeName", + "src": "82:8:5" + }, + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2891, + "name": "ElementaryTypeName", + "src": "95:4:5" + } + ], + "id": 2892, + "name": "UsingForDirective", + "src": "76:24:5" + }, + { + "attributes": { + "anonymous": false, + "documentation": null, + "name": "NewAdmin" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "newAdmin", + "scope": 2896, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2893, + "name": "ElementaryTypeName", + "src": "121:7:5" + } + ], + "id": 2894, + "name": "VariableDeclaration", + "src": "121:24:5" + } + ], + "id": 2895, + "name": "ParameterList", + "src": "120:26:5" + } + ], + "id": 2896, + "name": "EventDefinition", + "src": "106:41:5" + }, + { + "attributes": { + "anonymous": false, + "documentation": null, + "name": "NewPendingAdmin" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "newPendingAdmin", + "scope": 2900, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2897, + "name": "ElementaryTypeName", + "src": "174:7:5" + } + ], + "id": 2898, + "name": "VariableDeclaration", + "src": "174:31:5" + } + ], + "id": 2899, + "name": "ParameterList", + "src": "173:33:5" + } + ], + "id": 2900, + "name": "EventDefinition", + "src": "152:55:5" + }, + { + "attributes": { + "anonymous": false, + "documentation": null, + "name": "NewDelay" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "newDelay", + "scope": 2904, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2901, + "name": "ElementaryTypeName", + "src": "227:4:5" + } + ], + "id": 2902, + "name": "VariableDeclaration", + "src": "227:21:5" + } + ], + "id": 2903, + "name": "ParameterList", + "src": "226:23:5" + } + ], + "id": 2904, + "name": "EventDefinition", + "src": "212:38:5" + }, + { + "attributes": { + "anonymous": false, + "documentation": null, + "name": "CancelTransaction" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "txHash", + "scope": 2918, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2905, + "name": "ElementaryTypeName", + "src": "279:7:5" + } + ], + "id": 2906, + "name": "VariableDeclaration", + "src": "279:22:5" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "name": "target", + "scope": 2918, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2907, + "name": "ElementaryTypeName", + "src": "303:7:5" + } + ], + "id": 2908, + "name": "VariableDeclaration", + "src": "303:22:5" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "value", + "scope": 2918, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2909, + "name": "ElementaryTypeName", + "src": "327:4:5" + } + ], + "id": 2910, + "name": "VariableDeclaration", + "src": "327:10:5" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "signature", + "scope": 2918, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2911, + "name": "ElementaryTypeName", + "src": "339:6:5" + } + ], + "id": 2912, + "name": "VariableDeclaration", + "src": "339:16:5" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "data", + "scope": 2918, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2913, + "name": "ElementaryTypeName", + "src": "358:5:5" + } + ], + "id": 2914, + "name": "VariableDeclaration", + "src": "358:10:5" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "eta", + "scope": 2918, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2915, + "name": "ElementaryTypeName", + "src": "370:4:5" + } + ], + "id": 2916, + "name": "VariableDeclaration", + "src": "370:8:5" + } + ], + "id": 2917, + "name": "ParameterList", + "src": "278:101:5" + } + ], + "id": 2918, + "name": "EventDefinition", + "src": "255:125:5" + }, + { + "attributes": { + "anonymous": false, + "documentation": null, + "name": "ExecuteTransaction" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "txHash", + "scope": 2932, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2919, + "name": "ElementaryTypeName", + "src": "410:7:5" + } + ], + "id": 2920, + "name": "VariableDeclaration", + "src": "410:22:5" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "name": "target", + "scope": 2932, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2921, + "name": "ElementaryTypeName", + "src": "434:7:5" + } + ], + "id": 2922, + "name": "VariableDeclaration", + "src": "434:22:5" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "value", + "scope": 2932, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2923, + "name": "ElementaryTypeName", + "src": "458:4:5" + } + ], + "id": 2924, + "name": "VariableDeclaration", + "src": "458:10:5" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "signature", + "scope": 2932, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2925, + "name": "ElementaryTypeName", + "src": "470:6:5" + } + ], + "id": 2926, + "name": "VariableDeclaration", + "src": "470:16:5" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "data", + "scope": 2932, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2927, + "name": "ElementaryTypeName", + "src": "489:5:5" + } + ], + "id": 2928, + "name": "VariableDeclaration", + "src": "489:10:5" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "eta", + "scope": 2932, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2929, + "name": "ElementaryTypeName", + "src": "501:4:5" + } + ], + "id": 2930, + "name": "VariableDeclaration", + "src": "501:8:5" + } + ], + "id": 2931, + "name": "ParameterList", + "src": "409:101:5" + } + ], + "id": 2932, + "name": "EventDefinition", + "src": "385:126:5" + }, + { + "attributes": { + "anonymous": false, + "documentation": null, + "name": "QueueTransaction" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "txHash", + "scope": 2946, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2933, + "name": "ElementaryTypeName", + "src": "539:7:5" + } + ], + "id": 2934, + "name": "VariableDeclaration", + "src": "539:22:5" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "name": "target", + "scope": 2946, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2935, + "name": "ElementaryTypeName", + "src": "563:7:5" + } + ], + "id": 2936, + "name": "VariableDeclaration", + "src": "563:22:5" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "value", + "scope": 2946, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2937, + "name": "ElementaryTypeName", + "src": "587:4:5" + } + ], + "id": 2938, + "name": "VariableDeclaration", + "src": "587:10:5" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "signature", + "scope": 2946, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2939, + "name": "ElementaryTypeName", + "src": "599:6:5" + } + ], + "id": 2940, + "name": "VariableDeclaration", + "src": "599:16:5" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "data", + "scope": 2946, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2941, + "name": "ElementaryTypeName", + "src": "617:5:5" + } + ], + "id": 2942, + "name": "VariableDeclaration", + "src": "617:10:5" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "eta", + "scope": 2946, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2943, + "name": "ElementaryTypeName", + "src": "629:4:5" + } + ], + "id": 2944, + "name": "VariableDeclaration", + "src": "629:8:5" + } + ], + "id": 2945, + "name": "ParameterList", + "src": "538:100:5" + } + ], + "id": 2946, + "name": "EventDefinition", + "src": "516:123:5" + }, + { + "attributes": { + "constant": true, + "name": "GRACE_PERIOD", + "scope": 3340, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2947, + "name": "ElementaryTypeName", + "src": "645:4:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "3134", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": "days", + "token": "number", + "type": "int_const 1209600", + "value": "14" + }, + "id": 2948, + "name": "Literal", + "src": "681:7:5" + } + ], + "id": 2949, + "name": "VariableDeclaration", + "src": "645:43:5" + }, + { + "attributes": { + "constant": true, + "name": "MINIMUM_DELAY", + "scope": 3340, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2950, + "name": "ElementaryTypeName", + "src": "694:4:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": "days", + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2951, + "name": "Literal", + "src": "731:6:5" + } + ], + "id": 2952, + "name": "VariableDeclaration", + "src": "694:43:5" + }, + { + "attributes": { + "constant": true, + "name": "MAXIMUM_DELAY", + "scope": 3340, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2953, + "name": "ElementaryTypeName", + "src": "754:4:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "3330", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": "days", + "token": "number", + "type": "int_const 2592000", + "value": "30" + }, + "id": 2954, + "name": "Literal", + "src": "791:7:5" + } + ], + "id": 2955, + "name": "VariableDeclaration", + "src": "754:44:5" + }, + { + "attributes": { + "constant": false, + "name": "admin", + "scope": 3340, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2956, + "name": "ElementaryTypeName", + "src": "805:7:5" + } + ], + "id": 2957, + "name": "VariableDeclaration", + "src": "805:20:5" + }, + { + "attributes": { + "constant": false, + "name": "pendingAdmin", + "scope": 3340, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2958, + "name": "ElementaryTypeName", + "src": "831:7:5" + } + ], + "id": 2959, + "name": "VariableDeclaration", + "src": "831:27:5" + }, + { + "attributes": { + "constant": false, + "name": "delay", + "scope": 3340, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2960, + "name": "ElementaryTypeName", + "src": "864:4:5" + } + ], + "id": 2961, + "name": "VariableDeclaration", + "src": "864:17:5" + }, + { + "attributes": { + "constant": false, + "name": "queuedTransactions", + "scope": 3340, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(bytes32 => bool)", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => bool)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2962, + "name": "ElementaryTypeName", + "src": "897:7:5" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2963, + "name": "ElementaryTypeName", + "src": "908:4:5" + } + ], + "id": 2964, + "name": "Mapping", + "src": "888:25:5" + } + ], + "id": 2965, + "name": "VariableDeclaration", + "src": "888:51:5" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 3340, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "admin_", + "scope": 2995, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2966, + "name": "ElementaryTypeName", + "src": "959:7:5" + } + ], + "id": 2967, + "name": "VariableDeclaration", + "src": "959:14:5" + }, + { + "attributes": { + "constant": false, + "name": "delay_", + "scope": 2995, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2968, + "name": "ElementaryTypeName", + "src": "975:4:5" + } + ], + "id": 2969, + "name": "VariableDeclaration", + "src": "975:11:5" + } + ], + "id": 2970, + "name": "ParameterList", + "src": "958:29:5" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2971, + "name": "ParameterList", + "src": "995:0:5" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f", + "typeString": "literal_string \"Timelock::constructor: Delay must exceed minimum delay.\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2972, + "name": "Identifier", + "src": "1005:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2969, + "type": "uint256", + "value": "delay_" + }, + "id": 2973, + "name": "Identifier", + "src": "1013:6:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2952, + "type": "uint256", + "value": "MINIMUM_DELAY" + }, + "id": 2974, + "name": "Identifier", + "src": "1023:13:5" + } + ], + "id": 2975, + "name": "BinaryOperation", + "src": "1013:23:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "54696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Timelock::constructor: Delay must exceed minimum delay.\"", + "value": "Timelock::constructor: Delay must exceed minimum delay." + }, + "id": 2976, + "name": "Literal", + "src": "1038:57:5" + } + ], + "id": 2977, + "name": "FunctionCall", + "src": "1005:91:5" + } + ], + "id": 2978, + "name": "ExpressionStatement", + "src": "1005:91:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0", + "typeString": "literal_string \"Timelock::setDelay: Delay must not exceed maximum delay.\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2979, + "name": "Identifier", + "src": "1106:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2969, + "type": "uint256", + "value": "delay_" + }, + "id": 2980, + "name": "Identifier", + "src": "1114:6:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2955, + "type": "uint256", + "value": "MAXIMUM_DELAY" + }, + "id": 2981, + "name": "Identifier", + "src": "1124:13:5" + } + ], + "id": 2982, + "name": "BinaryOperation", + "src": "1114:23:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Timelock::setDelay: Delay must not exceed maximum delay.\"", + "value": "Timelock::setDelay: Delay must not exceed maximum delay." + }, + "id": 2983, + "name": "Literal", + "src": "1139:58:5" + } + ], + "id": 2984, + "name": "FunctionCall", + "src": "1106:92:5" + } + ], + "id": 2985, + "name": "ExpressionStatement", + "src": "1106:92:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2957, + "type": "address", + "value": "admin" + }, + "id": 2986, + "name": "Identifier", + "src": "1209:5:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2967, + "type": "address", + "value": "admin_" + }, + "id": 2987, + "name": "Identifier", + "src": "1217:6:5" + } + ], + "id": 2988, + "name": "Assignment", + "src": "1209:14:5" + } + ], + "id": 2989, + "name": "ExpressionStatement", + "src": "1209:14:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2961, + "type": "uint256", + "value": "delay" + }, + "id": 2990, + "name": "Identifier", + "src": "1233:5:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2969, + "type": "uint256", + "value": "delay_" + }, + "id": 2991, + "name": "Identifier", + "src": "1241:6:5" + } + ], + "id": 2992, + "name": "Assignment", + "src": "1233:14:5" + } + ], + "id": 2993, + "name": "ExpressionStatement", + "src": "1233:14:5" + } + ], + "id": 2994, + "name": "Block", + "src": "995:259:5" + } + ], + "id": 2995, + "name": "FunctionDefinition", + "src": "947:307:5" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "fallback", + "modifiers": [ + null + ], + "name": "", + "scope": 3340, + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2996, + "name": "ParameterList", + "src": "1268:2:5" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2997, + "name": "ParameterList", + "src": "1288:0:5" + }, + { + "attributes": { + "statements": [ + null + ] + }, + "children": [], + "id": 2998, + "name": "Block", + "src": "1288:3:5" + } + ], + "id": 2999, + "name": "FunctionDefinition", + "src": "1260:31:5" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setDelay", + "scope": 3340, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "delay_", + "scope": 3037, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 3000, + "name": "ElementaryTypeName", + "src": "1315:4:5" + } + ], + "id": 3001, + "name": "VariableDeclaration", + "src": "1315:11:5" + } + ], + "id": 3002, + "name": "ParameterList", + "src": "1314:13:5" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3003, + "name": "ParameterList", + "src": "1335:0:5" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d", + "typeString": "literal_string \"Timelock::setDelay: Call must come from Timelock.\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3004, + "name": "Identifier", + "src": "1345:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 3005, + "name": "Identifier", + "src": "1353:3:5" + } + ], + "id": 3006, + "name": "MemberAccess", + "src": "1353:10:5" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Timelock_$3340", + "typeString": "contract Timelock" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 3007, + "name": "ElementaryTypeNameExpression", + "src": "1367:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3387, + "type": "contract Timelock", + "value": "this" + }, + "id": 3008, + "name": "Identifier", + "src": "1375:4:5" + } + ], + "id": 3009, + "name": "FunctionCall", + "src": "1367:13:5" + } + ], + "id": 3010, + "name": "BinaryOperation", + "src": "1353:27:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Timelock::setDelay: Call must come from Timelock.\"", + "value": "Timelock::setDelay: Call must come from Timelock." + }, + "id": 3011, + "name": "Literal", + "src": "1382:51:5" + } + ], + "id": 3012, + "name": "FunctionCall", + "src": "1345:89:5" + } + ], + "id": 3013, + "name": "ExpressionStatement", + "src": "1345:89:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d", + "typeString": "literal_string \"Timelock::setDelay: Delay must exceed minimum delay.\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3014, + "name": "Identifier", + "src": "1444:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3001, + "type": "uint256", + "value": "delay_" + }, + "id": 3015, + "name": "Identifier", + "src": "1452:6:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2952, + "type": "uint256", + "value": "MINIMUM_DELAY" + }, + "id": 3016, + "name": "Identifier", + "src": "1462:13:5" + } + ], + "id": 3017, + "name": "BinaryOperation", + "src": "1452:23:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "54696d656c6f636b3a3a73657444656c61793a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Timelock::setDelay: Delay must exceed minimum delay.\"", + "value": "Timelock::setDelay: Delay must exceed minimum delay." + }, + "id": 3018, + "name": "Literal", + "src": "1477:54:5" + } + ], + "id": 3019, + "name": "FunctionCall", + "src": "1444:88:5" + } + ], + "id": 3020, + "name": "ExpressionStatement", + "src": "1444:88:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0", + "typeString": "literal_string \"Timelock::setDelay: Delay must not exceed maximum delay.\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3021, + "name": "Identifier", + "src": "1542:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3001, + "type": "uint256", + "value": "delay_" + }, + "id": 3022, + "name": "Identifier", + "src": "1550:6:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2955, + "type": "uint256", + "value": "MAXIMUM_DELAY" + }, + "id": 3023, + "name": "Identifier", + "src": "1560:13:5" + } + ], + "id": 3024, + "name": "BinaryOperation", + "src": "1550:23:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Timelock::setDelay: Delay must not exceed maximum delay.\"", + "value": "Timelock::setDelay: Delay must not exceed maximum delay." + }, + "id": 3025, + "name": "Literal", + "src": "1575:58:5" + } + ], + "id": 3026, + "name": "FunctionCall", + "src": "1542:92:5" + } + ], + "id": 3027, + "name": "ExpressionStatement", + "src": "1542:92:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2961, + "type": "uint256", + "value": "delay" + }, + "id": 3028, + "name": "Identifier", + "src": "1644:5:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3001, + "type": "uint256", + "value": "delay_" + }, + "id": 3029, + "name": "Identifier", + "src": "1652:6:5" + } + ], + "id": 3030, + "name": "Assignment", + "src": "1644:14:5" + } + ], + "id": 3031, + "name": "ExpressionStatement", + "src": "1644:14:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2904, + "type": "function (uint256)", + "value": "NewDelay" + }, + "id": 3032, + "name": "Identifier", + "src": "1674:8:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2961, + "type": "uint256", + "value": "delay" + }, + "id": 3033, + "name": "Identifier", + "src": "1683:5:5" + } + ], + "id": 3034, + "name": "FunctionCall", + "src": "1674:15:5" + } + ], + "id": 3035, + "name": "EmitStatement", + "src": "1669:20:5" + } + ], + "id": 3036, + "name": "Block", + "src": "1335:361:5" + } + ], + "id": 3037, + "name": "FunctionDefinition", + "src": "1297:399:5" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "acceptAdmin", + "scope": 3340, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3038, + "name": "ParameterList", + "src": "1722:2:5" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3039, + "name": "ParameterList", + "src": "1732:0:5" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3", + "typeString": "literal_string \"Timelock::acceptAdmin: Call must come from pendingAdmin.\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3040, + "name": "Identifier", + "src": "1742:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 3041, + "name": "Identifier", + "src": "1750:3:5" + } + ], + "id": 3042, + "name": "MemberAccess", + "src": "1750:10:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2959, + "type": "address", + "value": "pendingAdmin" + }, + "id": 3043, + "name": "Identifier", + "src": "1764:12:5" + } + ], + "id": 3044, + "name": "BinaryOperation", + "src": "1750:26:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737420636f6d652066726f6d2070656e64696e6741646d696e2e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Timelock::acceptAdmin: Call must come from pendingAdmin.\"", + "value": "Timelock::acceptAdmin: Call must come from pendingAdmin." + }, + "id": 3045, + "name": "Literal", + "src": "1778:58:5" + } + ], + "id": 3046, + "name": "FunctionCall", + "src": "1742:95:5" + } + ], + "id": 3047, + "name": "ExpressionStatement", + "src": "1742:95:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2957, + "type": "address", + "value": "admin" + }, + "id": 3048, + "name": "Identifier", + "src": "1847:5:5" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 3049, + "name": "Identifier", + "src": "1855:3:5" + } + ], + "id": 3050, + "name": "MemberAccess", + "src": "1855:10:5" + } + ], + "id": 3051, + "name": "Assignment", + "src": "1847:18:5" + } + ], + "id": 3052, + "name": "ExpressionStatement", + "src": "1847:18:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2959, + "type": "address", + "value": "pendingAdmin" + }, + "id": 3053, + "name": "Identifier", + "src": "1875:12:5" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 3054, + "name": "ElementaryTypeNameExpression", + "src": "1890:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3055, + "name": "Literal", + "src": "1898:1:5" + } + ], + "id": 3056, + "name": "FunctionCall", + "src": "1890:10:5" + } + ], + "id": 3057, + "name": "Assignment", + "src": "1875:25:5" + } + ], + "id": 3058, + "name": "ExpressionStatement", + "src": "1875:25:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "function (address)", + "value": "NewAdmin" + }, + "id": 3059, + "name": "Identifier", + "src": "1916:8:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2957, + "type": "address", + "value": "admin" + }, + "id": 3060, + "name": "Identifier", + "src": "1925:5:5" + } + ], + "id": 3061, + "name": "FunctionCall", + "src": "1916:15:5" + } + ], + "id": 3062, + "name": "EmitStatement", + "src": "1911:20:5" + } + ], + "id": 3063, + "name": "Block", + "src": "1732:206:5" + } + ], + "id": 3064, + "name": "FunctionDefinition", + "src": "1702:236:5" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setPendingAdmin", + "scope": 3340, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "pendingAdmin_", + "scope": 3088, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3065, + "name": "ElementaryTypeName", + "src": "1969:7:5" + } + ], + "id": 3066, + "name": "VariableDeclaration", + "src": "1969:21:5" + } + ], + "id": 3067, + "name": "ParameterList", + "src": "1968:23:5" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3068, + "name": "ParameterList", + "src": "1999:0:5" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815", + "typeString": "literal_string \"Timelock::setPendingAdmin: Call must come from Timelock.\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3069, + "name": "Identifier", + "src": "2009:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 3070, + "name": "Identifier", + "src": "2017:3:5" + } + ], + "id": 3071, + "name": "MemberAccess", + "src": "2017:10:5" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Timelock_$3340", + "typeString": "contract Timelock" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 3072, + "name": "ElementaryTypeNameExpression", + "src": "2031:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3387, + "type": "contract Timelock", + "value": "this" + }, + "id": 3073, + "name": "Identifier", + "src": "2039:4:5" + } + ], + "id": 3074, + "name": "FunctionCall", + "src": "2031:13:5" + } + ], + "id": 3075, + "name": "BinaryOperation", + "src": "2017:27:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Timelock::setPendingAdmin: Call must come from Timelock.\"", + "value": "Timelock::setPendingAdmin: Call must come from Timelock." + }, + "id": 3076, + "name": "Literal", + "src": "2046:58:5" + } + ], + "id": 3077, + "name": "FunctionCall", + "src": "2009:96:5" + } + ], + "id": 3078, + "name": "ExpressionStatement", + "src": "2009:96:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2959, + "type": "address", + "value": "pendingAdmin" + }, + "id": 3079, + "name": "Identifier", + "src": "2115:12:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3066, + "type": "address", + "value": "pendingAdmin_" + }, + "id": 3080, + "name": "Identifier", + "src": "2130:13:5" + } + ], + "id": 3081, + "name": "Assignment", + "src": "2115:28:5" + } + ], + "id": 3082, + "name": "ExpressionStatement", + "src": "2115:28:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2900, + "type": "function (address)", + "value": "NewPendingAdmin" + }, + "id": 3083, + "name": "Identifier", + "src": "2159:15:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2959, + "type": "address", + "value": "pendingAdmin" + }, + "id": 3084, + "name": "Identifier", + "src": "2175:12:5" + } + ], + "id": 3085, + "name": "FunctionCall", + "src": "2159:29:5" + } + ], + "id": 3086, + "name": "EmitStatement", + "src": "2154:34:5" + } + ], + "id": 3087, + "name": "Block", + "src": "1999:196:5" + } + ], + "id": 3088, + "name": "FunctionDefinition", + "src": "1944:251:5" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "queueTransaction", + "scope": 3340, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 3153, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3089, + "name": "ElementaryTypeName", + "src": "2227:7:5" + } + ], + "id": 3090, + "name": "VariableDeclaration", + "src": "2227:14:5" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 3153, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 3091, + "name": "ElementaryTypeName", + "src": "2243:4:5" + } + ], + "id": 3092, + "name": "VariableDeclaration", + "src": "2243:10:5" + }, + { + "attributes": { + "constant": false, + "name": "signature", + "scope": 3153, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3093, + "name": "ElementaryTypeName", + "src": "2255:6:5" + } + ], + "id": 3094, + "name": "VariableDeclaration", + "src": "2255:23:5" + }, + { + "attributes": { + "constant": false, + "name": "data", + "scope": 3153, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3095, + "name": "ElementaryTypeName", + "src": "2280:5:5" + } + ], + "id": 3096, + "name": "VariableDeclaration", + "src": "2280:17:5" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 3153, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 3097, + "name": "ElementaryTypeName", + "src": "2299:4:5" + } + ], + "id": 3098, + "name": "VariableDeclaration", + "src": "2299:8:5" + } + ], + "id": 3099, + "name": "ParameterList", + "src": "2226:82:5" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 3153, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 3100, + "name": "ElementaryTypeName", + "src": "2325:7:5" + } + ], + "id": 3101, + "name": "VariableDeclaration", + "src": "2325:7:5" + } + ], + "id": 3102, + "name": "ParameterList", + "src": "2324:9:5" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749", + "typeString": "literal_string \"Timelock::queueTransaction: Call must come from admin.\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3103, + "name": "Identifier", + "src": "2344:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 3104, + "name": "Identifier", + "src": "2352:3:5" + } + ], + "id": 3105, + "name": "MemberAccess", + "src": "2352:10:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2957, + "type": "address", + "value": "admin" + }, + "id": 3106, + "name": "Identifier", + "src": "2366:5:5" + } + ], + "id": 3107, + "name": "BinaryOperation", + "src": "2352:19:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Timelock::queueTransaction: Call must come from admin.\"", + "value": "Timelock::queueTransaction: Call must come from admin." + }, + "id": 3108, + "name": "Literal", + "src": "2373:56:5" + } + ], + "id": 3109, + "name": "FunctionCall", + "src": "2344:86:5" + } + ], + "id": 3110, + "name": "ExpressionStatement", + "src": "2344:86:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c", + "typeString": "literal_string \"Timelock::queueTransaction: Estimated execution block must satisfy delay.\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3111, + "name": "Identifier", + "src": "2440:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3098, + "type": "uint256", + "value": "eta" + }, + "id": 3112, + "name": "Identifier", + "src": "2448:3:5" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 2663, + "type": "function (uint256,uint256) pure returns (uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3339, + "type": "function () view returns (uint256)", + "value": "getBlockTimestamp" + }, + "id": 3113, + "name": "Identifier", + "src": "2455:17:5" + } + ], + "id": 3114, + "name": "FunctionCall", + "src": "2455:19:5" + } + ], + "id": 3115, + "name": "MemberAccess", + "src": "2455:23:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2961, + "type": "uint256", + "value": "delay" + }, + "id": 3116, + "name": "Identifier", + "src": "2479:5:5" + } + ], + "id": 3117, + "name": "FunctionCall", + "src": "2455:30:5" + } + ], + "id": 3118, + "name": "BinaryOperation", + "src": "2448:37:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "54696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374696d6174656420657865637574696f6e20626c6f636b206d75737420736174697366792064656c61792e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Timelock::queueTransaction: Estimated execution block must satisfy delay.\"", + "value": "Timelock::queueTransaction: Estimated execution block must satisfy delay." + }, + "id": 3119, + "name": "Literal", + "src": "2487:75:5" + } + ], + "id": 3120, + "name": "FunctionCall", + "src": "2440:123:5" + } + ], + "id": 3121, + "name": "ExpressionStatement", + "src": "2440:123:5" + }, + { + "attributes": { + "assignments": [ + 3123 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "txHash", + "scope": 3152, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 3122, + "name": "ElementaryTypeName", + "src": "2574:7:5" + } + ], + "id": 3123, + "name": "VariableDeclaration", + "src": "2574:14:5" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3349, + "type": "function (bytes memory) pure returns (bytes32)", + "value": "keccak256" + }, + "id": 3124, + "name": "Identifier", + "src": "2591:9:5" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encode", + "referencedDeclaration": null, + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3342, + "type": "abi", + "value": "abi" + }, + "id": 3125, + "name": "Identifier", + "src": "2601:3:5" + } + ], + "id": 3126, + "name": "MemberAccess", + "src": "2601:10:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "address", + "value": "target" + }, + "id": 3127, + "name": "Identifier", + "src": "2612:6:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3092, + "type": "uint256", + "value": "value" + }, + "id": 3128, + "name": "Identifier", + "src": "2620:5:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3094, + "type": "string memory", + "value": "signature" + }, + "id": 3129, + "name": "Identifier", + "src": "2627:9:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3096, + "type": "bytes memory", + "value": "data" + }, + "id": 3130, + "name": "Identifier", + "src": "2638:4:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3098, + "type": "uint256", + "value": "eta" + }, + "id": 3131, + "name": "Identifier", + "src": "2644:3:5" + } + ], + "id": 3132, + "name": "FunctionCall", + "src": "2601:47:5" + } + ], + "id": 3133, + "name": "FunctionCall", + "src": "2591:58:5" + } + ], + "id": 3134, + "name": "VariableDeclarationStatement", + "src": "2574:75:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2965, + "type": "mapping(bytes32 => bool)", + "value": "queuedTransactions" + }, + "id": 3135, + "name": "Identifier", + "src": "2659:18:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3123, + "type": "bytes32", + "value": "txHash" + }, + "id": 3136, + "name": "Identifier", + "src": "2678:6:5" + } + ], + "id": 3137, + "name": "IndexAccess", + "src": "2659:26:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 3138, + "name": "Literal", + "src": "2688:4:5" + } + ], + "id": 3139, + "name": "Assignment", + "src": "2659:33:5" + } + ], + "id": 3140, + "name": "ExpressionStatement", + "src": "2659:33:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2946, + "type": "function (bytes32,address,uint256,string memory,bytes memory,uint256)", + "value": "QueueTransaction" + }, + "id": 3141, + "name": "Identifier", + "src": "2708:16:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3123, + "type": "bytes32", + "value": "txHash" + }, + "id": 3142, + "name": "Identifier", + "src": "2725:6:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "address", + "value": "target" + }, + "id": 3143, + "name": "Identifier", + "src": "2733:6:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3092, + "type": "uint256", + "value": "value" + }, + "id": 3144, + "name": "Identifier", + "src": "2741:5:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3094, + "type": "string memory", + "value": "signature" + }, + "id": 3145, + "name": "Identifier", + "src": "2748:9:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3096, + "type": "bytes memory", + "value": "data" + }, + "id": 3146, + "name": "Identifier", + "src": "2759:4:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3098, + "type": "uint256", + "value": "eta" + }, + "id": 3147, + "name": "Identifier", + "src": "2765:3:5" + } + ], + "id": 3148, + "name": "FunctionCall", + "src": "2708:61:5" + } + ], + "id": 3149, + "name": "EmitStatement", + "src": "2703:66:5" + }, + { + "attributes": { + "functionReturnParameters": 3102 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3123, + "type": "bytes32", + "value": "txHash" + }, + "id": 3150, + "name": "Identifier", + "src": "2786:6:5" + } + ], + "id": 3151, + "name": "Return", + "src": "2779:13:5" + } + ], + "id": 3152, + "name": "Block", + "src": "2334:465:5" + } + ], + "id": 3153, + "name": "FunctionDefinition", + "src": "2201:598:5" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "cancelTransaction", + "scope": 3340, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 3203, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3154, + "name": "ElementaryTypeName", + "src": "2832:7:5" + } + ], + "id": 3155, + "name": "VariableDeclaration", + "src": "2832:14:5" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 3203, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 3156, + "name": "ElementaryTypeName", + "src": "2848:4:5" + } + ], + "id": 3157, + "name": "VariableDeclaration", + "src": "2848:10:5" + }, + { + "attributes": { + "constant": false, + "name": "signature", + "scope": 3203, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3158, + "name": "ElementaryTypeName", + "src": "2860:6:5" + } + ], + "id": 3159, + "name": "VariableDeclaration", + "src": "2860:23:5" + }, + { + "attributes": { + "constant": false, + "name": "data", + "scope": 3203, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3160, + "name": "ElementaryTypeName", + "src": "2885:5:5" + } + ], + "id": 3161, + "name": "VariableDeclaration", + "src": "2885:17:5" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 3203, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 3162, + "name": "ElementaryTypeName", + "src": "2904:4:5" + } + ], + "id": 3163, + "name": "VariableDeclaration", + "src": "2904:8:5" + } + ], + "id": 3164, + "name": "ParameterList", + "src": "2831:82:5" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3165, + "name": "ParameterList", + "src": "2921:0:5" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d", + "typeString": "literal_string \"Timelock::cancelTransaction: Call must come from admin.\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3166, + "name": "Identifier", + "src": "2931:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 3167, + "name": "Identifier", + "src": "2939:3:5" + } + ], + "id": 3168, + "name": "MemberAccess", + "src": "2939:10:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2957, + "type": "address", + "value": "admin" + }, + "id": 3169, + "name": "Identifier", + "src": "2953:5:5" + } + ], + "id": 3170, + "name": "BinaryOperation", + "src": "2939:19:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Timelock::cancelTransaction: Call must come from admin.\"", + "value": "Timelock::cancelTransaction: Call must come from admin." + }, + "id": 3171, + "name": "Literal", + "src": "2960:57:5" + } + ], + "id": 3172, + "name": "FunctionCall", + "src": "2931:87:5" + } + ], + "id": 3173, + "name": "ExpressionStatement", + "src": "2931:87:5" + }, + { + "attributes": { + "assignments": [ + 3175 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "txHash", + "scope": 3202, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 3174, + "name": "ElementaryTypeName", + "src": "3029:7:5" + } + ], + "id": 3175, + "name": "VariableDeclaration", + "src": "3029:14:5" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3349, + "type": "function (bytes memory) pure returns (bytes32)", + "value": "keccak256" + }, + "id": 3176, + "name": "Identifier", + "src": "3046:9:5" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encode", + "referencedDeclaration": null, + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3342, + "type": "abi", + "value": "abi" + }, + "id": 3177, + "name": "Identifier", + "src": "3056:3:5" + } + ], + "id": 3178, + "name": "MemberAccess", + "src": "3056:10:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3155, + "type": "address", + "value": "target" + }, + "id": 3179, + "name": "Identifier", + "src": "3067:6:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3157, + "type": "uint256", + "value": "value" + }, + "id": 3180, + "name": "Identifier", + "src": "3075:5:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3159, + "type": "string memory", + "value": "signature" + }, + "id": 3181, + "name": "Identifier", + "src": "3082:9:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3161, + "type": "bytes memory", + "value": "data" + }, + "id": 3182, + "name": "Identifier", + "src": "3093:4:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3163, + "type": "uint256", + "value": "eta" + }, + "id": 3183, + "name": "Identifier", + "src": "3099:3:5" + } + ], + "id": 3184, + "name": "FunctionCall", + "src": "3056:47:5" + } + ], + "id": 3185, + "name": "FunctionCall", + "src": "3046:58:5" + } + ], + "id": 3186, + "name": "VariableDeclarationStatement", + "src": "3029:75:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2965, + "type": "mapping(bytes32 => bool)", + "value": "queuedTransactions" + }, + "id": 3187, + "name": "Identifier", + "src": "3114:18:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3175, + "type": "bytes32", + "value": "txHash" + }, + "id": 3188, + "name": "Identifier", + "src": "3133:6:5" + } + ], + "id": 3189, + "name": "IndexAccess", + "src": "3114:26:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 3190, + "name": "Literal", + "src": "3143:5:5" + } + ], + "id": 3191, + "name": "Assignment", + "src": "3114:34:5" + } + ], + "id": 3192, + "name": "ExpressionStatement", + "src": "3114:34:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2918, + "type": "function (bytes32,address,uint256,string memory,bytes memory,uint256)", + "value": "CancelTransaction" + }, + "id": 3193, + "name": "Identifier", + "src": "3164:17:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3175, + "type": "bytes32", + "value": "txHash" + }, + "id": 3194, + "name": "Identifier", + "src": "3182:6:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3155, + "type": "address", + "value": "target" + }, + "id": 3195, + "name": "Identifier", + "src": "3190:6:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3157, + "type": "uint256", + "value": "value" + }, + "id": 3196, + "name": "Identifier", + "src": "3198:5:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3159, + "type": "string memory", + "value": "signature" + }, + "id": 3197, + "name": "Identifier", + "src": "3205:9:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3161, + "type": "bytes memory", + "value": "data" + }, + "id": 3198, + "name": "Identifier", + "src": "3216:4:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3163, + "type": "uint256", + "value": "eta" + }, + "id": 3199, + "name": "Identifier", + "src": "3222:3:5" + } + ], + "id": 3200, + "name": "FunctionCall", + "src": "3164:62:5" + } + ], + "id": 3201, + "name": "EmitStatement", + "src": "3159:67:5" + } + ], + "id": 3202, + "name": "Block", + "src": "2921:312:5" + } + ], + "id": 3203, + "name": "FunctionDefinition", + "src": "2805:428:5" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "executeTransaction", + "scope": 3340, + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 3330, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3204, + "name": "ElementaryTypeName", + "src": "3267:7:5" + } + ], + "id": 3205, + "name": "VariableDeclaration", + "src": "3267:14:5" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 3330, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 3206, + "name": "ElementaryTypeName", + "src": "3283:4:5" + } + ], + "id": 3207, + "name": "VariableDeclaration", + "src": "3283:10:5" + }, + { + "attributes": { + "constant": false, + "name": "signature", + "scope": 3330, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3208, + "name": "ElementaryTypeName", + "src": "3295:6:5" + } + ], + "id": 3209, + "name": "VariableDeclaration", + "src": "3295:23:5" + }, + { + "attributes": { + "constant": false, + "name": "data", + "scope": 3330, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3210, + "name": "ElementaryTypeName", + "src": "3320:5:5" + } + ], + "id": 3211, + "name": "VariableDeclaration", + "src": "3320:17:5" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 3330, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 3212, + "name": "ElementaryTypeName", + "src": "3339:4:5" + } + ], + "id": 3213, + "name": "VariableDeclaration", + "src": "3339:8:5" + } + ], + "id": 3214, + "name": "ParameterList", + "src": "3266:82:5" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 3330, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3215, + "name": "ElementaryTypeName", + "src": "3373:5:5" + } + ], + "id": 3216, + "name": "VariableDeclaration", + "src": "3373:12:5" + } + ], + "id": 3217, + "name": "ParameterList", + "src": "3372:14:5" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947", + "typeString": "literal_string \"Timelock::executeTransaction: Call must come from admin.\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3218, + "name": "Identifier", + "src": "3397:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3355, + "type": "msg", + "value": "msg" + }, + "id": 3219, + "name": "Identifier", + "src": "3405:3:5" + } + ], + "id": 3220, + "name": "MemberAccess", + "src": "3405:10:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2957, + "type": "address", + "value": "admin" + }, + "id": 3221, + "name": "Identifier", + "src": "3419:5:5" + } + ], + "id": 3222, + "name": "BinaryOperation", + "src": "3405:19:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Timelock::executeTransaction: Call must come from admin.\"", + "value": "Timelock::executeTransaction: Call must come from admin." + }, + "id": 3223, + "name": "Literal", + "src": "3426:58:5" + } + ], + "id": 3224, + "name": "FunctionCall", + "src": "3397:88:5" + } + ], + "id": 3225, + "name": "ExpressionStatement", + "src": "3397:88:5" + }, + { + "attributes": { + "assignments": [ + 3227 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "txHash", + "scope": 3329, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 3226, + "name": "ElementaryTypeName", + "src": "3496:7:5" + } + ], + "id": 3227, + "name": "VariableDeclaration", + "src": "3496:14:5" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3349, + "type": "function (bytes memory) pure returns (bytes32)", + "value": "keccak256" + }, + "id": 3228, + "name": "Identifier", + "src": "3513:9:5" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encode", + "referencedDeclaration": null, + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3342, + "type": "abi", + "value": "abi" + }, + "id": 3229, + "name": "Identifier", + "src": "3523:3:5" + } + ], + "id": 3230, + "name": "MemberAccess", + "src": "3523:10:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3205, + "type": "address", + "value": "target" + }, + "id": 3231, + "name": "Identifier", + "src": "3534:6:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3207, + "type": "uint256", + "value": "value" + }, + "id": 3232, + "name": "Identifier", + "src": "3542:5:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3209, + "type": "string memory", + "value": "signature" + }, + "id": 3233, + "name": "Identifier", + "src": "3549:9:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3211, + "type": "bytes memory", + "value": "data" + }, + "id": 3234, + "name": "Identifier", + "src": "3560:4:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3213, + "type": "uint256", + "value": "eta" + }, + "id": 3235, + "name": "Identifier", + "src": "3566:3:5" + } + ], + "id": 3236, + "name": "FunctionCall", + "src": "3523:47:5" + } + ], + "id": 3237, + "name": "FunctionCall", + "src": "3513:58:5" + } + ], + "id": 3238, + "name": "VariableDeclarationStatement", + "src": "3496:75:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650", + "typeString": "literal_string \"Timelock::executeTransaction: Transaction hasn't been queued.\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3239, + "name": "Identifier", + "src": "3581:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2965, + "type": "mapping(bytes32 => bool)", + "value": "queuedTransactions" + }, + "id": 3240, + "name": "Identifier", + "src": "3589:18:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3227, + "type": "bytes32", + "value": "txHash" + }, + "id": 3241, + "name": "Identifier", + "src": "3608:6:5" + } + ], + "id": 3242, + "name": "IndexAccess", + "src": "3589:26:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774206265656e207175657565642e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Timelock::executeTransaction: Transaction hasn't been queued.\"", + "value": "Timelock::executeTransaction: Transaction hasn't been queued." + }, + "id": 3243, + "name": "Literal", + "src": "3617:63:5" + } + ], + "id": 3244, + "name": "FunctionCall", + "src": "3581:100:5" + } + ], + "id": 3245, + "name": "ExpressionStatement", + "src": "3581:100:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687", + "typeString": "literal_string \"Timelock::executeTransaction: Transaction hasn't surpassed time lock.\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3246, + "name": "Identifier", + "src": "3691:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3339, + "type": "function () view returns (uint256)", + "value": "getBlockTimestamp" + }, + "id": 3247, + "name": "Identifier", + "src": "3699:17:5" + } + ], + "id": 3248, + "name": "FunctionCall", + "src": "3699:19:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3213, + "type": "uint256", + "value": "eta" + }, + "id": 3249, + "name": "Identifier", + "src": "3722:3:5" + } + ], + "id": 3250, + "name": "BinaryOperation", + "src": "3699:26:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774207375727061737365642074696d65206c6f636b2e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Timelock::executeTransaction: Transaction hasn't surpassed time lock.\"", + "value": "Timelock::executeTransaction: Transaction hasn't surpassed time lock." + }, + "id": 3251, + "name": "Literal", + "src": "3727:71:5" + } + ], + "id": 3252, + "name": "FunctionCall", + "src": "3691:108:5" + } + ], + "id": 3253, + "name": "ExpressionStatement", + "src": "3691:108:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c", + "typeString": "literal_string \"Timelock::executeTransaction: Transaction is stale.\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3254, + "name": "Identifier", + "src": "3809:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3339, + "type": "function () view returns (uint256)", + "value": "getBlockTimestamp" + }, + "id": 3255, + "name": "Identifier", + "src": "3817:17:5" + } + ], + "id": 3256, + "name": "FunctionCall", + "src": "3817:19:5" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 2663, + "type": "function (uint256,uint256) pure returns (uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3213, + "type": "uint256", + "value": "eta" + }, + "id": 3257, + "name": "Identifier", + "src": "3840:3:5" + } + ], + "id": 3258, + "name": "MemberAccess", + "src": "3840:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2949, + "type": "uint256", + "value": "GRACE_PERIOD" + }, + "id": 3259, + "name": "Identifier", + "src": "3848:12:5" + } + ], + "id": 3260, + "name": "FunctionCall", + "src": "3840:21:5" + } + ], + "id": 3261, + "name": "BinaryOperation", + "src": "3817:44:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206973207374616c652e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Timelock::executeTransaction: Transaction is stale.\"", + "value": "Timelock::executeTransaction: Transaction is stale." + }, + "id": 3262, + "name": "Literal", + "src": "3863:53:5" + } + ], + "id": 3263, + "name": "FunctionCall", + "src": "3809:108:5" + } + ], + "id": 3264, + "name": "ExpressionStatement", + "src": "3809:108:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2965, + "type": "mapping(bytes32 => bool)", + "value": "queuedTransactions" + }, + "id": 3265, + "name": "Identifier", + "src": "3928:18:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3227, + "type": "bytes32", + "value": "txHash" + }, + "id": 3266, + "name": "Identifier", + "src": "3947:6:5" + } + ], + "id": 3267, + "name": "IndexAccess", + "src": "3928:26:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 3268, + "name": "Literal", + "src": "3957:5:5" + } + ], + "id": 3269, + "name": "Assignment", + "src": "3928:34:5" + } + ], + "id": 3270, + "name": "ExpressionStatement", + "src": "3928:34:5" + }, + { + "attributes": { + "assignments": [ + 3272 + ], + "initialValue": null + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "callData", + "scope": 3329, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3271, + "name": "ElementaryTypeName", + "src": "3973:5:5" + } + ], + "id": 3272, + "name": "VariableDeclaration", + "src": "3973:21:5" + } + ], + "id": 3273, + "name": "VariableDeclarationStatement", + "src": "3973:21:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)", + "value": "bytes" + }, + "id": 3274, + "name": "ElementaryTypeNameExpression", + "src": "4009:5:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3209, + "type": "string memory", + "value": "signature" + }, + "id": 3275, + "name": "Identifier", + "src": "4015:9:5" + } + ], + "id": 3276, + "name": "FunctionCall", + "src": "4009:16:5" + } + ], + "id": 3277, + "name": "MemberAccess", + "src": "4009:23:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3278, + "name": "Literal", + "src": "4036:1:5" + } + ], + "id": 3279, + "name": "BinaryOperation", + "src": "4009:28:5" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes memory" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3272, + "type": "bytes memory", + "value": "callData" + }, + "id": 3280, + "name": "Identifier", + "src": "4053:8:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3211, + "type": "bytes memory", + "value": "data" + }, + "id": 3281, + "name": "Identifier", + "src": "4064:4:5" + } + ], + "id": 3282, + "name": "Assignment", + "src": "4053:15:5" + } + ], + "id": 3283, + "name": "ExpressionStatement", + "src": "4053:15:5" + } + ], + "id": 3284, + "name": "Block", + "src": "4039:40:5" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes memory" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3272, + "type": "bytes memory", + "value": "callData" + }, + "id": 3285, + "name": "Identifier", + "src": "4099:8:5" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "referencedDeclaration": null, + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3342, + "type": "abi", + "value": "abi" + }, + "id": 3286, + "name": "Identifier", + "src": "4110:3:5" + } + ], + "id": 3287, + "name": "MemberAccess", + "src": "4110:16:5" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes4", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)", + "value": "bytes4" + }, + "id": 3288, + "name": "ElementaryTypeNameExpression", + "src": "4127:6:5" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3349, + "type": "function (bytes memory) pure returns (bytes32)", + "value": "keccak256" + }, + "id": 3289, + "name": "Identifier", + "src": "4134:9:5" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)", + "value": "bytes" + }, + "id": 3290, + "name": "ElementaryTypeNameExpression", + "src": "4144:5:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3209, + "type": "string memory", + "value": "signature" + }, + "id": 3291, + "name": "Identifier", + "src": "4150:9:5" + } + ], + "id": 3292, + "name": "FunctionCall", + "src": "4144:16:5" + } + ], + "id": 3293, + "name": "FunctionCall", + "src": "4134:27:5" + } + ], + "id": 3294, + "name": "FunctionCall", + "src": "4127:35:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3211, + "type": "bytes memory", + "value": "data" + }, + "id": 3295, + "name": "Identifier", + "src": "4164:4:5" + } + ], + "id": 3296, + "name": "FunctionCall", + "src": "4110:59:5" + } + ], + "id": 3297, + "name": "Assignment", + "src": "4099:70:5" + } + ], + "id": 3298, + "name": "ExpressionStatement", + "src": "4099:70:5" + } + ], + "id": 3299, + "name": "Block", + "src": "4085:95:5" + } + ], + "id": 3300, + "name": "IfStatement", + "src": "4005:175:5" + }, + { + "attributes": { + "assignments": [ + 3302, + 3304 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "success", + "scope": 3329, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3301, + "name": "ElementaryTypeName", + "src": "4250:4:5" + } + ], + "id": 3302, + "name": "VariableDeclaration", + "src": "4250:12:5" + }, + { + "attributes": { + "constant": false, + "name": "returnData", + "scope": 3329, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3303, + "name": "ElementaryTypeName", + "src": "4264:5:5" + } + ], + "id": 3304, + "name": "VariableDeclaration", + "src": "4264:23:5" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "value", + "referencedDeclaration": null, + "type": "function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "referencedDeclaration": null, + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3205, + "type": "address", + "value": "target" + }, + "id": 3305, + "name": "Identifier", + "src": "4291:6:5" + } + ], + "id": 3306, + "name": "MemberAccess", + "src": "4291:11:5" + } + ], + "id": 3307, + "name": "MemberAccess", + "src": "4291:17:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3207, + "type": "uint256", + "value": "value" + }, + "id": 3308, + "name": "Identifier", + "src": "4309:5:5" + } + ], + "id": 3309, + "name": "FunctionCall", + "src": "4291:24:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3272, + "type": "bytes memory", + "value": "callData" + }, + "id": 3310, + "name": "Identifier", + "src": "4316:8:5" + } + ], + "id": 3311, + "name": "FunctionCall", + "src": "4291:34:5" + } + ], + "id": 3312, + "name": "VariableDeclarationStatement", + "src": "4249:76:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9", + "typeString": "literal_string \"Timelock::executeTransaction: Transaction execution reverted.\"" + } + ], + "overloadedDeclarations": [ + 3358, + 3359 + ], + "referencedDeclaration": 3359, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3313, + "name": "Identifier", + "src": "4335:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "bool", + "value": "success" + }, + "id": 3314, + "name": "Identifier", + "src": "4343:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e20657865637574696f6e2072657665727465642e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Timelock::executeTransaction: Transaction execution reverted.\"", + "value": "Timelock::executeTransaction: Transaction execution reverted." + }, + "id": 3315, + "name": "Literal", + "src": "4352:63:5" + } + ], + "id": 3316, + "name": "FunctionCall", + "src": "4335:81:5" + } + ], + "id": 3317, + "name": "ExpressionStatement", + "src": "4335:81:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2932, + "type": "function (bytes32,address,uint256,string memory,bytes memory,uint256)", + "value": "ExecuteTransaction" + }, + "id": 3318, + "name": "Identifier", + "src": "4432:18:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3227, + "type": "bytes32", + "value": "txHash" + }, + "id": 3319, + "name": "Identifier", + "src": "4451:6:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3205, + "type": "address", + "value": "target" + }, + "id": 3320, + "name": "Identifier", + "src": "4459:6:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3207, + "type": "uint256", + "value": "value" + }, + "id": 3321, + "name": "Identifier", + "src": "4467:5:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3209, + "type": "string memory", + "value": "signature" + }, + "id": 3322, + "name": "Identifier", + "src": "4474:9:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3211, + "type": "bytes memory", + "value": "data" + }, + "id": 3323, + "name": "Identifier", + "src": "4485:4:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3213, + "type": "uint256", + "value": "eta" + }, + "id": 3324, + "name": "Identifier", + "src": "4491:3:5" + } + ], + "id": 3325, + "name": "FunctionCall", + "src": "4432:63:5" + } + ], + "id": 3326, + "name": "EmitStatement", + "src": "4427:68:5" + }, + { + "attributes": { + "functionReturnParameters": 3217 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "bytes memory", + "value": "returnData" + }, + "id": 3327, + "name": "Identifier", + "src": "4513:10:5" + } + ], + "id": 3328, + "name": "Return", + "src": "4506:17:5" + } + ], + "id": 3329, + "name": "Block", + "src": "3387:1143:5" + } + ], + "id": 3330, + "name": "FunctionDefinition", + "src": "3239:1291:5" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getBlockTimestamp", + "scope": 3340, + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3331, + "name": "ParameterList", + "src": "4562:2:5" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 3339, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 3332, + "name": "ElementaryTypeName", + "src": "4588:4:5" + } + ], + "id": 3333, + "name": "VariableDeclaration", + "src": "4588:4:5" + } + ], + "id": 3334, + "name": "ParameterList", + "src": "4587:6:5" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3334 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "timestamp", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3345, + "type": "block", + "value": "block" + }, + "id": 3335, + "name": "Identifier", + "src": "4673:5:5" + } + ], + "id": 3336, + "name": "MemberAccess", + "src": "4673:15:5" + } + ], + "id": 3337, + "name": "Return", + "src": "4666:22:5" + } + ], + "id": 3338, + "name": "Block", + "src": "4594:101:5" + } + ], + "id": 3339, + "name": "FunctionDefinition", + "src": "4536:159:5" + } + ], + "id": 3340, + "name": "ContractDefinition", + "src": "52:4645:5" + } + ], + "id": 3341, + "name": "SourceUnit", + "src": "0:4697:5" + }, + "compiler": { + "name": "solc", + "version": "0.5.16" + }, + "networks": { + "28": { + "events": { + "0x2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf87": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "CancelTransaction", + "type": "event" + }, + "0xa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e7": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "ExecuteTransaction", + "type": "event" + }, + "0x71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "NewAdmin", + "type": "event" + }, + "0x948b1f6a42ee138b7e34058ba85a37f716d55ff25ff05a763f15bed6a04c8d2c": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "newDelay", + "type": "uint256" + } + ], + "name": "NewDelay", + "type": "event" + }, + "0x69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a756": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newPendingAdmin", + "type": "address" + } + ], + "name": "NewPendingAdmin", + "type": "event" + }, + "0x76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "QueueTransaction", + "type": "event" + } + }, + "links": {}, + "address": "0x69376e9E3437B5fE6a546eE62A391f35CD82F865", + "transactionHash": "0xfe16b8a37a2c82037415ab701d974347a625ff2ed3462eeb3715fc3fd05f689d" + } + }, + "schemaVersion": "3.4.3", + "updatedAt": "2021-09-05T22:07:11.013Z", + "networkType": "ethereum", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/omgx_examples/compound-simple/build-ovm/TimelockInterface.json b/omgx_examples/compound-simple/build-ovm/TimelockInterface.json new file mode 100644 index 000000000000..84d2258a07a9 --- /dev/null +++ b/omgx_examples/compound-simple/build-ovm/TimelockInterface.json @@ -0,0 +1,6390 @@ +{ + "contractName": "TimelockInterface", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "delay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "GRACE_PERIOD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "bytes32", + "name": "hash", + "type": "bytes32" + } + ], + "name": "queuedTransactions", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "queueTransaction", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "cancelTransaction", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "executeTransaction", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.16-develop.2020.11.10+ovm+commit.00cdd204\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"GRACE_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"acceptAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"cancelTransaction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"executeTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"queueTransaction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"queuedTransactions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/GovernorBravoInterfaces.sol\":\"TimelockInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"project:/contracts/GovernorBravoInterfaces.sol\":{\"keccak256\":\"0x74cb8a82fef2906cbee7c96d7aa72e46b01df83859704a35a4a63d3aa9493718\",\"urls\":[\"bzz-raw://82b0c9f82c46927ea7128afc44921d60af23461da7f6d0c29484b5b92ad2b87a\",\"dweb:/ipfs/QmbNHAYEhhXzmdsmfMPLuGAGceq9oHD9AaDmyrnVaXPrhh\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.5.16;\npragma experimental ABIEncoderV2;\n\n\ncontract GovernorBravoEvents {\n /// @notice An event emitted when a new proposal is created\n event ProposalCreated(uint id, address proposer, address[] targets, uint[] values, string[] signatures, bytes[] calldatas, uint startBlock, uint endBlock, string description);\n\n /// @notice An event emitted when a vote has been cast on a proposal\n /// @param voter The address which casted a vote\n /// @param proposalId The proposal id which was voted on\n /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\n /// @param votes Number of votes which were cast by the voter\n /// @param reason The reason given for the vote by the voter\n event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\n\n /// @notice An event emitted when a proposal has been canceled\n event ProposalCanceled(uint id);\n\n /// @notice An event emitted when a proposal has been queued in the Timelock\n event ProposalQueued(uint id, uint eta);\n\n /// @notice An event emitted when a proposal has been executed in the Timelock\n event ProposalExecuted(uint id);\n\n /// @notice An event emitted when the voting delay is set\n event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\n\n /// @notice An event emitted when the voting period is set\n event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\n\n /// @notice Emitted when implementation is changed\n event NewImplementation(address oldImplementation, address newImplementation);\n\n /// @notice Emitted when proposal threshold is set\n event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\n\n /// @notice Emitted when pendingAdmin is changed\n event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\n\n /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\n event NewAdmin(address oldAdmin, address newAdmin);\n}\n\ncontract GovernorBravoDelegatorStorage {\n /// @notice Administrator for this contract\n address public admin;\n\n /// @notice Pending administrator for this contract\n address public pendingAdmin;\n\n /// @notice Active brains of Governor\n address public implementation;\n}\n\n\n/**\n * @title Storage for Governor Bravo Delegate\n * @notice For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\n * GovernorBravoDelegateStorageVX.\n */\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\n\n /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\n uint public votingDelay;\n\n /// @notice The duration of voting on a proposal, in blocks\n uint public votingPeriod;\n\n /// @notice The number of votes required in order for a voter to become a proposer\n uint public proposalThreshold;\n\n /// @notice Initial proposal id set at become\n uint public initialProposalId;\n\n /// @notice The total number of proposals\n uint public proposalCount;\n\n /// @notice The address of the Compound Protocol Timelock\n TimelockInterface public timelock;\n\n /// @notice The address of the Compound governance token\n CompInterface public comp;\n\n /// @notice The official record of all proposals ever proposed\n mapping (uint => Proposal) public proposals;\n\n /// @notice The latest proposal for each proposer\n mapping (address => uint) public latestProposalIds;\n\n\n struct Proposal {\n /// @notice Unique id for looking up a proposal\n uint id;\n\n /// @notice Creator of the proposal\n address proposer;\n\n /// @notice The timestamp that the proposal will be available for execution, set once the vote succeeds\n uint eta;\n\n /// @notice the ordered list of target addresses for calls to be made\n address[] targets;\n\n /// @notice The ordered list of values (i.e. msg.value) to be passed to the calls to be made\n uint[] values;\n\n /// @notice The ordered list of function signatures to be called\n string[] signatures;\n\n /// @notice The ordered list of calldata to be passed to each call\n bytes[] calldatas;\n\n /// @notice The block at which voting begins: holders must delegate their votes prior to this block\n uint startBlock;\n\n /// @notice The block at which voting ends: votes must be cast prior to this block\n uint endBlock;\n\n /// @notice Current number of votes in favor of this proposal\n uint forVotes;\n\n /// @notice Current number of votes in opposition to this proposal\n uint againstVotes;\n\n /// @notice Current number of votes for abstaining for this proposal\n uint abstainVotes;\n\n /// @notice Flag marking whether the proposal has been canceled\n bool canceled;\n\n /// @notice Flag marking whether the proposal has been executed\n bool executed;\n\n /// @notice Receipts of ballots for the entire set of voters\n mapping (address => Receipt) receipts;\n }\n\n /// @notice Ballot receipt record for a voter\n struct Receipt {\n /// @notice Whether or not a vote has been cast\n bool hasVoted;\n\n /// @notice Whether or not the voter supports the proposal or abstains\n uint8 support;\n\n /// @notice The number of votes the voter had, which were cast\n uint96 votes;\n }\n\n /// @notice Possible states that a proposal may be in\n enum ProposalState {\n Pending,\n Active,\n Canceled,\n Defeated,\n Succeeded,\n Queued,\n Expired,\n Executed\n }\n}\n\ninterface TimelockInterface {\n function delay() external view returns (uint);\n function GRACE_PERIOD() external view returns (uint);\n function acceptAdmin() external;\n function queuedTransactions(bytes32 hash) external view returns (bool);\n function queueTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external returns (bytes32);\n function cancelTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external;\n function executeTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external payable returns (bytes memory);\n}\n\ninterface CompInterface {\n function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\n}\n", + "sourcePath": "/Users/janliphardt/Documents/GitHub/optimism/omgx_examples/compound-simple/contracts/GovernorBravoInterfaces.sol", + "ast": { + "absolutePath": "project:/contracts/GovernorBravoInterfaces.sol", + "exportedSymbols": { + "CompInterface": [ + 2636 + ], + "GovernorBravoDelegateStorageV1": [ + 2562 + ], + "GovernorBravoDelegatorStorage": [ + 2484 + ], + "GovernorBravoEvents": [ + 2477 + ], + "TimelockInterface": [ + 2626 + ] + }, + "id": 2637, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2389, + "literals": [ + "solidity", + "^", + "0.5", + ".16" + ], + "nodeType": "PragmaDirective", + "src": "0:24:3" + }, + { + "id": 2390, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "25:33:3" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2477, + "linearizedBaseContracts": [ + 2477 + ], + "name": "GovernorBravoEvents", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": "@notice An event emitted when a new proposal is created", + "id": 2414, + "name": "ProposalCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 2413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2392, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "182:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2391, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "182:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2394, + "indexed": false, + "name": "proposer", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "191:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2393, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "191:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2397, + "indexed": false, + "name": "targets", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "209:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2395, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "209:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2396, + "length": null, + "nodeType": "ArrayTypeName", + "src": "209:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2400, + "indexed": false, + "name": "values", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "228:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2398, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "228:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2399, + "length": null, + "nodeType": "ArrayTypeName", + "src": "228:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2403, + "indexed": false, + "name": "signatures", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "243:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 2401, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "243:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 2402, + "length": null, + "nodeType": "ArrayTypeName", + "src": "243:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2406, + "indexed": false, + "name": "calldatas", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "264:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 2404, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "264:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 2405, + "length": null, + "nodeType": "ArrayTypeName", + "src": "264:7:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2408, + "indexed": false, + "name": "startBlock", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "283:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2407, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "283:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2410, + "indexed": false, + "name": "endBlock", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "300:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2409, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "300:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2412, + "indexed": false, + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 2414, + "src": "315:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2411, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "315:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "181:153:3" + }, + "src": "160:175:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when a vote has been cast on a proposal\n @param voter The address which casted a vote\n @param proposalId The proposal id which was voted on\n @param support Support value for the vote. 0=against, 1=for, 2=abstain\n @param votes Number of votes which were cast by the voter\n @param reason The reason given for the vote by the voter", + "id": 2426, + "name": "VoteCast", + "nodeType": "EventDefinition", + "parameters": { + "id": 2425, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2416, + "indexed": true, + "name": "voter", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "753:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2415, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2418, + "indexed": false, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "776:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2417, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "776:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2420, + "indexed": false, + "name": "support", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "793:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2419, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "793:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2422, + "indexed": false, + "name": "votes", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "808:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2421, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "808:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2424, + "indexed": false, + "name": "reason", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "820:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2423, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "820:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:82:3" + }, + "src": "738:97:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been canceled", + "id": 2430, + "name": "ProposalCanceled", + "nodeType": "EventDefinition", + "parameters": { + "id": 2429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2428, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2430, + "src": "931:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2427, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "931:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "930:9:3" + }, + "src": "908:32:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been queued in the Timelock", + "id": 2436, + "name": "ProposalQueued", + "nodeType": "EventDefinition", + "parameters": { + "id": 2435, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2432, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2436, + "src": "1048:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2431, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1048:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2434, + "indexed": false, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2436, + "src": "1057:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2433, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1057:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1047:19:3" + }, + "src": "1027:40:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been executed in the Timelock", + "id": 2440, + "name": "ProposalExecuted", + "nodeType": "EventDefinition", + "parameters": { + "id": 2439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2438, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2440, + "src": "1179:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2437, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1179:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1178:9:3" + }, + "src": "1156:32:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when the voting delay is set", + "id": 2446, + "name": "VotingDelaySet", + "nodeType": "EventDefinition", + "parameters": { + "id": 2445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2442, + "indexed": false, + "name": "oldVotingDelay", + "nodeType": "VariableDeclaration", + "scope": 2446, + "src": "1277:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2441, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1277:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2444, + "indexed": false, + "name": "newVotingDelay", + "nodeType": "VariableDeclaration", + "scope": 2446, + "src": "1298:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2443, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1298:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1276:42:3" + }, + "src": "1256:63:3" + }, + { + "anonymous": false, + "documentation": "@notice An event emitted when the voting period is set", + "id": 2452, + "name": "VotingPeriodSet", + "nodeType": "EventDefinition", + "parameters": { + "id": 2451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2448, + "indexed": false, + "name": "oldVotingPeriod", + "nodeType": "VariableDeclaration", + "scope": 2452, + "src": "1410:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2447, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1410:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2450, + "indexed": false, + "name": "newVotingPeriod", + "nodeType": "VariableDeclaration", + "scope": 2452, + "src": "1432:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2449, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1432:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1409:44:3" + }, + "src": "1388:66:3" + }, + { + "anonymous": false, + "documentation": "@notice Emitted when implementation is changed", + "id": 2458, + "name": "NewImplementation", + "nodeType": "EventDefinition", + "parameters": { + "id": 2457, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2454, + "indexed": false, + "name": "oldImplementation", + "nodeType": "VariableDeclaration", + "scope": 2458, + "src": "1539:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2453, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1539:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2456, + "indexed": false, + "name": "newImplementation", + "nodeType": "VariableDeclaration", + "scope": 2458, + "src": "1566:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2455, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1566:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1538:54:3" + }, + "src": "1515:78:3" + }, + { + "anonymous": false, + "documentation": "@notice Emitted when proposal threshold is set", + "id": 2464, + "name": "ProposalThresholdSet", + "nodeType": "EventDefinition", + "parameters": { + "id": 2463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2460, + "indexed": false, + "name": "oldProposalThreshold", + "nodeType": "VariableDeclaration", + "scope": 2464, + "src": "1681:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2459, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1681:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2462, + "indexed": false, + "name": "newProposalThreshold", + "nodeType": "VariableDeclaration", + "scope": 2464, + "src": "1708:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2461, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1708:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1680:54:3" + }, + "src": "1654:81:3" + }, + { + "anonymous": false, + "documentation": "@notice Emitted when pendingAdmin is changed", + "id": 2470, + "name": "NewPendingAdmin", + "nodeType": "EventDefinition", + "parameters": { + "id": 2469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2466, + "indexed": false, + "name": "oldPendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 2470, + "src": "1816:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2465, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1816:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2468, + "indexed": false, + "name": "newPendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 2470, + "src": "1841:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2467, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1841:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1815:50:3" + }, + "src": "1794:72:3" + }, + { + "anonymous": false, + "documentation": "@notice Emitted when pendingAdmin is accepted, which means admin is updated", + "id": 2476, + "name": "NewAdmin", + "nodeType": "EventDefinition", + "parameters": { + "id": 2475, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2472, + "indexed": false, + "name": "oldAdmin", + "nodeType": "VariableDeclaration", + "scope": 2476, + "src": "1971:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2471, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1971:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2474, + "indexed": false, + "name": "newAdmin", + "nodeType": "VariableDeclaration", + "scope": 2476, + "src": "1989:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2473, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1989:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1970:36:3" + }, + "src": "1956:51:3" + } + ], + "scope": 2637, + "src": "61:1948:3" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2484, + "linearizedBaseContracts": [ + 2484 + ], + "name": "GovernorBravoDelegatorStorage", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 2479, + "name": "admin", + "nodeType": "VariableDeclaration", + "scope": 2484, + "src": "2104:20:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2478, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2104:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2481, + "name": "pendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 2484, + "src": "2187:27:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2480, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2187:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2483, + "name": "implementation", + "nodeType": "VariableDeclaration", + "scope": 2484, + "src": "2263:29:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2263:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + } + ], + "scope": 2637, + "src": "2011:284:3" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2485, + "name": "GovernorBravoDelegatorStorage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2484, + "src": "2617:29:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorBravoDelegatorStorage_$2484", + "typeString": "contract GovernorBravoDelegatorStorage" + } + }, + "id": 2486, + "nodeType": "InheritanceSpecifier", + "src": "2617:29:3" + } + ], + "contractDependencies": [ + 2484 + ], + "contractKind": "contract", + "documentation": "@title Storage for Governor Bravo Delegate\n@notice For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\ncontract which implements GovernorBravoDelegateStorageV1 and following the naming convention\nGovernorBravoDelegateStorageVX.", + "fullyImplemented": true, + "id": 2562, + "linearizedBaseContracts": [ + 2562, + 2484 + ], + "name": "GovernorBravoDelegateStorageV1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 2488, + "name": "votingDelay", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "2749:23:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2487, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2749:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2490, + "name": "votingPeriod", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "2843:24:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2489, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2843:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2492, + "name": "proposalThreshold", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "2961:29:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2491, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2961:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2494, + "name": "initialProposalId", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3047:29:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2493, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3047:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2496, + "name": "proposalCount", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3129:25:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2495, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3129:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2498, + "name": "timelock", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3223:33:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + }, + "typeName": { + "contractScope": null, + "id": 2497, + "name": "TimelockInterface", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2626, + "src": "3223:17:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$2626", + "typeString": "contract TimelockInterface" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2500, + "name": "comp", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3324:25:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CompInterface_$2636", + "typeString": "contract CompInterface" + }, + "typeName": { + "contractScope": null, + "id": 2499, + "name": "CompInterface", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2636, + "src": "3324:13:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CompInterface_$2636", + "typeString": "contract CompInterface" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2504, + "name": "proposals", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3423:43:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$2545_storage_$", + "typeString": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)" + }, + "typeName": { + "id": 2503, + "keyType": { + "id": 2501, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3432:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "3423:26:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$2545_storage_$", + "typeString": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)" + }, + "valueType": { + "contractScope": null, + "id": 2502, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2545, + "src": "3440:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$2545_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Proposal" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2508, + "name": "latestProposalIds", + "nodeType": "VariableDeclaration", + "scope": 2562, + "src": "3527:50:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 2507, + "keyType": { + "id": 2505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3536:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3527:25:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 2506, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3547:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "canonicalName": "GovernorBravoDelegateStorageV1.Proposal", + "id": 2545, + "members": [ + { + "constant": false, + "id": 2510, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "3667:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2509, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3667:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2512, + "name": "proposer", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "3729:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3729:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2514, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "3868:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2513, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3868:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2517, + "name": "targets", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "3965:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2515, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3965:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2516, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3965:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2520, + "name": "values", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4094:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2518, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4094:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2519, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4094:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2523, + "name": "signatures", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4191:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 2521, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4191:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 2522, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4191:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2526, + "name": "calldatas", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4296:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 2524, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4296:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 2525, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4296:7:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2528, + "name": "startBlock", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4432:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2527, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4432:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2530, + "name": "endBlock", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4549:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2529, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4549:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2532, + "name": "forVotes", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4643:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2531, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4643:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2534, + "name": "againstVotes", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4742:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2533, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4742:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2536, + "name": "abstainVotes", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4847:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2535, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4847:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2538, + "name": "canceled", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "4947:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2537, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4947:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2540, + "name": "executed", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "5043:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5043:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2544, + "name": "receipts", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "5136:37:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Receipt_$2552_storage_$", + "typeString": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)" + }, + "typeName": { + "id": 2543, + "keyType": { + "id": 2541, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5145:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5136:28:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Receipt_$2552_storage_$", + "typeString": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)" + }, + "valueType": { + "contractScope": null, + "id": 2542, + "name": "Receipt", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2552, + "src": "5156:7:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$2552_storage_ptr", + "typeString": "struct GovernorBravoDelegateStorageV1.Receipt" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Proposal", + "nodeType": "StructDefinition", + "scope": 2562, + "src": "3585:1595:3", + "visibility": "public" + }, + { + "canonicalName": "GovernorBravoDelegateStorageV1.Receipt", + "id": 2552, + "members": [ + { + "constant": false, + "id": 2547, + "name": "hasVoted", + "nodeType": "VariableDeclaration", + "scope": 2552, + "src": "5317:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2546, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5317:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2549, + "name": "support", + "nodeType": "VariableDeclaration", + "scope": 2552, + "src": "5420:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2548, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5420:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2551, + "name": "votes", + "nodeType": "VariableDeclaration", + "scope": 2552, + "src": "5515:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 2550, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "5515:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Receipt", + "nodeType": "StructDefinition", + "scope": 2562, + "src": "5236:298:3", + "visibility": "public" + }, + { + "canonicalName": "GovernorBravoDelegateStorageV1.ProposalState", + "id": 2561, + "members": [ + { + "id": 2553, + "name": "Pending", + "nodeType": "EnumValue", + "src": "5627:7:3" + }, + { + "id": 2554, + "name": "Active", + "nodeType": "EnumValue", + "src": "5644:6:3" + }, + { + "id": 2555, + "name": "Canceled", + "nodeType": "EnumValue", + "src": "5660:8:3" + }, + { + "id": 2556, + "name": "Defeated", + "nodeType": "EnumValue", + "src": "5678:8:3" + }, + { + "id": 2557, + "name": "Succeeded", + "nodeType": "EnumValue", + "src": "5696:9:3" + }, + { + "id": 2558, + "name": "Queued", + "nodeType": "EnumValue", + "src": "5715:6:3" + }, + { + "id": 2559, + "name": "Expired", + "nodeType": "EnumValue", + "src": "5731:7:3" + }, + { + "id": 2560, + "name": "Executed", + "nodeType": "EnumValue", + "src": "5748:8:3" + } + ], + "name": "ProposalState", + "nodeType": "EnumDefinition", + "src": "5598:164:3" + } + ], + "scope": 2637, + "src": "2574:3190:3" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 2626, + "linearizedBaseContracts": [ + 2626 + ], + "name": "TimelockInterface", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 2567, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "delay", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2563, + "nodeType": "ParameterList", + "parameters": [], + "src": "5814:2:3" + }, + "returnParameters": { + "id": 2566, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2565, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2567, + "src": "5840:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2564, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5840:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5839:6:3" + }, + "scope": 2626, + "src": "5800:46:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2572, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "GRACE_PERIOD", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2568, + "nodeType": "ParameterList", + "parameters": [], + "src": "5872:2:3" + }, + "returnParameters": { + "id": 2571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2570, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2572, + "src": "5898:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2569, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5898:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5897:6:3" + }, + "scope": 2626, + "src": "5851:53:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2575, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "acceptAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2573, + "nodeType": "ParameterList", + "parameters": [], + "src": "5929:2:3" + }, + "returnParameters": { + "id": 2574, + "nodeType": "ParameterList", + "parameters": [], + "src": "5940:0:3" + }, + "scope": 2626, + "src": "5909:32:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2582, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "queuedTransactions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2577, + "name": "hash", + "nodeType": "VariableDeclaration", + "scope": 2582, + "src": "5974:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2576, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5974:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5973:14:3" + }, + "returnParameters": { + "id": 2581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2580, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2582, + "src": "6011:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2579, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6011:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6010:6:3" + }, + "scope": 2626, + "src": "5946:71:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2597, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "queueTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2584, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6048:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6048:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2586, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6064:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2585, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6064:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2588, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6076:25:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2587, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6076:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2590, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6103:19:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2589, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6103:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2592, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6124:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2591, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6124:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6047:86:3" + }, + "returnParameters": { + "id": 2596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2595, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "6152:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2594, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6152:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6151:9:3" + }, + "scope": 2626, + "src": "6022:139:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2610, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "cancelTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2599, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6193:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2598, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6193:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2601, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6209:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2600, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6209:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2603, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6221:25:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2602, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6221:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2605, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6248:19:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2604, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6248:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2607, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2610, + "src": "6269:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2606, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6269:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6192:86:3" + }, + "returnParameters": { + "id": 2609, + "nodeType": "ParameterList", + "parameters": [], + "src": "6287:0:3" + }, + "scope": 2626, + "src": "6166:122:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2625, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "executeTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2612, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6321:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2611, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6321:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2614, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6337:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2613, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6337:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2616, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6349:25:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2615, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6349:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2618, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6376:19:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2617, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6376:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2620, + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6397:8:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2619, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6397:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6320:86:3" + }, + "returnParameters": { + "id": 2624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2623, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2625, + "src": "6433:12:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2622, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6433:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6432:14:3" + }, + "scope": 2626, + "src": "6293:154:3", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2637, + "src": "5766:683:3" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 2636, + "linearizedBaseContracts": [ + 2636 + ], + "name": "CompInterface", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 2635, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPriorVotes", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2631, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2628, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 2635, + "src": "6504:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2627, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6504:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2630, + "name": "blockNumber", + "nodeType": "VariableDeclaration", + "scope": 2635, + "src": "6521:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2629, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6521:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6503:35:3" + }, + "returnParameters": { + "id": 2634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2633, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2635, + "src": "6562:6:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 2632, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "6562:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6561:8:3" + }, + "scope": 2636, + "src": "6481:89:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2637, + "src": "6451:121:3" + } + ], + "src": "0:6573:3" + }, + "legacyAST": { + "attributes": { + "absolutePath": "project:/contracts/GovernorBravoInterfaces.sol", + "exportedSymbols": { + "CompInterface": [ + 2636 + ], + "GovernorBravoDelegateStorageV1": [ + 2562 + ], + "GovernorBravoDelegatorStorage": [ + 2484 + ], + "GovernorBravoEvents": [ + 2477 + ], + "TimelockInterface": [ + 2626 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.5", + ".16" + ] + }, + "id": 2389, + "name": "PragmaDirective", + "src": "0:24:3" + }, + { + "attributes": { + "literals": [ + "experimental", + "ABIEncoderV2" + ] + }, + "id": 2390, + "name": "PragmaDirective", + "src": "25:33:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2477 + ], + "name": "GovernorBravoEvents", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a new proposal is created", + "name": "ProposalCreated" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "id", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2391, + "name": "ElementaryTypeName", + "src": "182:4:3" + } + ], + "id": 2392, + "name": "VariableDeclaration", + "src": "182:7:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "proposer", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2393, + "name": "ElementaryTypeName", + "src": "191:7:3" + } + ], + "id": 2394, + "name": "VariableDeclaration", + "src": "191:16:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "targets", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "address[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "address[]" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2395, + "name": "ElementaryTypeName", + "src": "209:7:3" + } + ], + "id": 2396, + "name": "ArrayTypeName", + "src": "209:9:3" + } + ], + "id": 2397, + "name": "VariableDeclaration", + "src": "209:17:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "values", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "uint256[]" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2398, + "name": "ElementaryTypeName", + "src": "228:4:3" + } + ], + "id": 2399, + "name": "ArrayTypeName", + "src": "228:6:3" + } + ], + "id": 2400, + "name": "VariableDeclaration", + "src": "228:13:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "signatures", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "string[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "string[]" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2401, + "name": "ElementaryTypeName", + "src": "243:6:3" + } + ], + "id": 2402, + "name": "ArrayTypeName", + "src": "243:8:3" + } + ], + "id": 2403, + "name": "VariableDeclaration", + "src": "243:19:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "calldatas", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "bytes[]" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2404, + "name": "ElementaryTypeName", + "src": "264:5:3" + } + ], + "id": 2405, + "name": "ArrayTypeName", + "src": "264:7:3" + } + ], + "id": 2406, + "name": "VariableDeclaration", + "src": "264:17:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "startBlock", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2407, + "name": "ElementaryTypeName", + "src": "283:4:3" + } + ], + "id": 2408, + "name": "VariableDeclaration", + "src": "283:15:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "endBlock", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2409, + "name": "ElementaryTypeName", + "src": "300:4:3" + } + ], + "id": 2410, + "name": "VariableDeclaration", + "src": "300:13:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "description", + "scope": 2414, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2411, + "name": "ElementaryTypeName", + "src": "315:6:3" + } + ], + "id": 2412, + "name": "VariableDeclaration", + "src": "315:18:3" + } + ], + "id": 2413, + "name": "ParameterList", + "src": "181:153:3" + } + ], + "id": 2414, + "name": "EventDefinition", + "src": "160:175:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a vote has been cast on a proposal\n @param voter The address which casted a vote\n @param proposalId The proposal id which was voted on\n @param support Support value for the vote. 0=against, 1=for, 2=abstain\n @param votes Number of votes which were cast by the voter\n @param reason The reason given for the vote by the voter", + "name": "VoteCast" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "voter", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2415, + "name": "ElementaryTypeName", + "src": "753:7:3" + } + ], + "id": 2416, + "name": "VariableDeclaration", + "src": "753:21:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "proposalId", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2417, + "name": "ElementaryTypeName", + "src": "776:4:3" + } + ], + "id": 2418, + "name": "VariableDeclaration", + "src": "776:15:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "support", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 2419, + "name": "ElementaryTypeName", + "src": "793:5:3" + } + ], + "id": 2420, + "name": "VariableDeclaration", + "src": "793:13:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "votes", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2421, + "name": "ElementaryTypeName", + "src": "808:4:3" + } + ], + "id": 2422, + "name": "VariableDeclaration", + "src": "808:10:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "reason", + "scope": 2426, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2423, + "name": "ElementaryTypeName", + "src": "820:6:3" + } + ], + "id": 2424, + "name": "VariableDeclaration", + "src": "820:13:3" + } + ], + "id": 2425, + "name": "ParameterList", + "src": "752:82:3" + } + ], + "id": 2426, + "name": "EventDefinition", + "src": "738:97:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been canceled", + "name": "ProposalCanceled" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "id", + "scope": 2430, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2427, + "name": "ElementaryTypeName", + "src": "931:4:3" + } + ], + "id": 2428, + "name": "VariableDeclaration", + "src": "931:7:3" + } + ], + "id": 2429, + "name": "ParameterList", + "src": "930:9:3" + } + ], + "id": 2430, + "name": "EventDefinition", + "src": "908:32:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been queued in the Timelock", + "name": "ProposalQueued" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "id", + "scope": 2436, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2431, + "name": "ElementaryTypeName", + "src": "1048:4:3" + } + ], + "id": 2432, + "name": "VariableDeclaration", + "src": "1048:7:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "eta", + "scope": 2436, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2433, + "name": "ElementaryTypeName", + "src": "1057:4:3" + } + ], + "id": 2434, + "name": "VariableDeclaration", + "src": "1057:8:3" + } + ], + "id": 2435, + "name": "ParameterList", + "src": "1047:19:3" + } + ], + "id": 2436, + "name": "EventDefinition", + "src": "1027:40:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when a proposal has been executed in the Timelock", + "name": "ProposalExecuted" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "id", + "scope": 2440, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2437, + "name": "ElementaryTypeName", + "src": "1179:4:3" + } + ], + "id": 2438, + "name": "VariableDeclaration", + "src": "1179:7:3" + } + ], + "id": 2439, + "name": "ParameterList", + "src": "1178:9:3" + } + ], + "id": 2440, + "name": "EventDefinition", + "src": "1156:32:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when the voting delay is set", + "name": "VotingDelaySet" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldVotingDelay", + "scope": 2446, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2441, + "name": "ElementaryTypeName", + "src": "1277:4:3" + } + ], + "id": 2442, + "name": "VariableDeclaration", + "src": "1277:19:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newVotingDelay", + "scope": 2446, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2443, + "name": "ElementaryTypeName", + "src": "1298:4:3" + } + ], + "id": 2444, + "name": "VariableDeclaration", + "src": "1298:19:3" + } + ], + "id": 2445, + "name": "ParameterList", + "src": "1276:42:3" + } + ], + "id": 2446, + "name": "EventDefinition", + "src": "1256:63:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice An event emitted when the voting period is set", + "name": "VotingPeriodSet" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldVotingPeriod", + "scope": 2452, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2447, + "name": "ElementaryTypeName", + "src": "1410:4:3" + } + ], + "id": 2448, + "name": "VariableDeclaration", + "src": "1410:20:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newVotingPeriod", + "scope": 2452, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2449, + "name": "ElementaryTypeName", + "src": "1432:4:3" + } + ], + "id": 2450, + "name": "VariableDeclaration", + "src": "1432:20:3" + } + ], + "id": 2451, + "name": "ParameterList", + "src": "1409:44:3" + } + ], + "id": 2452, + "name": "EventDefinition", + "src": "1388:66:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice Emitted when implementation is changed", + "name": "NewImplementation" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldImplementation", + "scope": 2458, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2453, + "name": "ElementaryTypeName", + "src": "1539:7:3" + } + ], + "id": 2454, + "name": "VariableDeclaration", + "src": "1539:25:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newImplementation", + "scope": 2458, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2455, + "name": "ElementaryTypeName", + "src": "1566:7:3" + } + ], + "id": 2456, + "name": "VariableDeclaration", + "src": "1566:25:3" + } + ], + "id": 2457, + "name": "ParameterList", + "src": "1538:54:3" + } + ], + "id": 2458, + "name": "EventDefinition", + "src": "1515:78:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice Emitted when proposal threshold is set", + "name": "ProposalThresholdSet" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldProposalThreshold", + "scope": 2464, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2459, + "name": "ElementaryTypeName", + "src": "1681:4:3" + } + ], + "id": 2460, + "name": "VariableDeclaration", + "src": "1681:25:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newProposalThreshold", + "scope": 2464, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2461, + "name": "ElementaryTypeName", + "src": "1708:4:3" + } + ], + "id": 2462, + "name": "VariableDeclaration", + "src": "1708:25:3" + } + ], + "id": 2463, + "name": "ParameterList", + "src": "1680:54:3" + } + ], + "id": 2464, + "name": "EventDefinition", + "src": "1654:81:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice Emitted when pendingAdmin is changed", + "name": "NewPendingAdmin" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldPendingAdmin", + "scope": 2470, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2465, + "name": "ElementaryTypeName", + "src": "1816:7:3" + } + ], + "id": 2466, + "name": "VariableDeclaration", + "src": "1816:23:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newPendingAdmin", + "scope": 2470, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2467, + "name": "ElementaryTypeName", + "src": "1841:7:3" + } + ], + "id": 2468, + "name": "VariableDeclaration", + "src": "1841:23:3" + } + ], + "id": 2469, + "name": "ParameterList", + "src": "1815:50:3" + } + ], + "id": 2470, + "name": "EventDefinition", + "src": "1794:72:3" + }, + { + "attributes": { + "anonymous": false, + "documentation": "@notice Emitted when pendingAdmin is accepted, which means admin is updated", + "name": "NewAdmin" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "oldAdmin", + "scope": 2476, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2471, + "name": "ElementaryTypeName", + "src": "1971:7:3" + } + ], + "id": 2472, + "name": "VariableDeclaration", + "src": "1971:16:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "newAdmin", + "scope": 2476, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2473, + "name": "ElementaryTypeName", + "src": "1989:7:3" + } + ], + "id": 2474, + "name": "VariableDeclaration", + "src": "1989:16:3" + } + ], + "id": 2475, + "name": "ParameterList", + "src": "1970:36:3" + } + ], + "id": 2476, + "name": "EventDefinition", + "src": "1956:51:3" + } + ], + "id": 2477, + "name": "ContractDefinition", + "src": "61:1948:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2484 + ], + "name": "GovernorBravoDelegatorStorage", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "admin", + "scope": 2484, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2478, + "name": "ElementaryTypeName", + "src": "2104:7:3" + } + ], + "id": 2479, + "name": "VariableDeclaration", + "src": "2104:20:3" + }, + { + "attributes": { + "constant": false, + "name": "pendingAdmin", + "scope": 2484, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2480, + "name": "ElementaryTypeName", + "src": "2187:7:3" + } + ], + "id": 2481, + "name": "VariableDeclaration", + "src": "2187:27:3" + }, + { + "attributes": { + "constant": false, + "name": "implementation", + "scope": 2484, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2482, + "name": "ElementaryTypeName", + "src": "2263:7:3" + } + ], + "id": 2483, + "name": "VariableDeclaration", + "src": "2263:29:3" + } + ], + "id": 2484, + "name": "ContractDefinition", + "src": "2011:284:3" + }, + { + "attributes": { + "contractDependencies": [ + 2484 + ], + "contractKind": "contract", + "documentation": "@title Storage for Governor Bravo Delegate\n@notice For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\ncontract which implements GovernorBravoDelegateStorageV1 and following the naming convention\nGovernorBravoDelegateStorageVX.", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2562, + 2484 + ], + "name": "GovernorBravoDelegateStorageV1", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "GovernorBravoDelegatorStorage", + "referencedDeclaration": 2484, + "type": "contract GovernorBravoDelegatorStorage" + }, + "id": 2485, + "name": "UserDefinedTypeName", + "src": "2617:29:3" + } + ], + "id": 2486, + "name": "InheritanceSpecifier", + "src": "2617:29:3" + }, + { + "attributes": { + "constant": false, + "name": "votingDelay", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2487, + "name": "ElementaryTypeName", + "src": "2749:4:3" + } + ], + "id": 2488, + "name": "VariableDeclaration", + "src": "2749:23:3" + }, + { + "attributes": { + "constant": false, + "name": "votingPeriod", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2489, + "name": "ElementaryTypeName", + "src": "2843:4:3" + } + ], + "id": 2490, + "name": "VariableDeclaration", + "src": "2843:24:3" + }, + { + "attributes": { + "constant": false, + "name": "proposalThreshold", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2491, + "name": "ElementaryTypeName", + "src": "2961:4:3" + } + ], + "id": 2492, + "name": "VariableDeclaration", + "src": "2961:29:3" + }, + { + "attributes": { + "constant": false, + "name": "initialProposalId", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2493, + "name": "ElementaryTypeName", + "src": "3047:4:3" + } + ], + "id": 2494, + "name": "VariableDeclaration", + "src": "3047:29:3" + }, + { + "attributes": { + "constant": false, + "name": "proposalCount", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2495, + "name": "ElementaryTypeName", + "src": "3129:4:3" + } + ], + "id": 2496, + "name": "VariableDeclaration", + "src": "3129:25:3" + }, + { + "attributes": { + "constant": false, + "name": "timelock", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "contract TimelockInterface", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "TimelockInterface", + "referencedDeclaration": 2626, + "type": "contract TimelockInterface" + }, + "id": 2497, + "name": "UserDefinedTypeName", + "src": "3223:17:3" + } + ], + "id": 2498, + "name": "VariableDeclaration", + "src": "3223:33:3" + }, + { + "attributes": { + "constant": false, + "name": "comp", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "contract CompInterface", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "CompInterface", + "referencedDeclaration": 2636, + "type": "contract CompInterface" + }, + "id": 2499, + "name": "UserDefinedTypeName", + "src": "3324:13:3" + } + ], + "id": 2500, + "name": "VariableDeclaration", + "src": "3324:25:3" + }, + { + "attributes": { + "constant": false, + "name": "proposals", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2501, + "name": "ElementaryTypeName", + "src": "3432:4:3" + }, + { + "attributes": { + "contractScope": null, + "name": "Proposal", + "referencedDeclaration": 2545, + "type": "struct GovernorBravoDelegateStorageV1.Proposal" + }, + "id": 2502, + "name": "UserDefinedTypeName", + "src": "3440:8:3" + } + ], + "id": 2503, + "name": "Mapping", + "src": "3423:26:3" + } + ], + "id": 2504, + "name": "VariableDeclaration", + "src": "3423:43:3" + }, + { + "attributes": { + "constant": false, + "name": "latestProposalIds", + "scope": 2562, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => uint256)", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2505, + "name": "ElementaryTypeName", + "src": "3536:7:3" + }, + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2506, + "name": "ElementaryTypeName", + "src": "3547:4:3" + } + ], + "id": 2507, + "name": "Mapping", + "src": "3527:25:3" + } + ], + "id": 2508, + "name": "VariableDeclaration", + "src": "3527:50:3" + }, + { + "attributes": { + "canonicalName": "GovernorBravoDelegateStorageV1.Proposal", + "name": "Proposal", + "scope": 2562, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "id", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2509, + "name": "ElementaryTypeName", + "src": "3667:4:3" + } + ], + "id": 2510, + "name": "VariableDeclaration", + "src": "3667:7:3" + }, + { + "attributes": { + "constant": false, + "name": "proposer", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2511, + "name": "ElementaryTypeName", + "src": "3729:7:3" + } + ], + "id": 2512, + "name": "VariableDeclaration", + "src": "3729:16:3" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2513, + "name": "ElementaryTypeName", + "src": "3868:4:3" + } + ], + "id": 2514, + "name": "VariableDeclaration", + "src": "3868:8:3" + }, + { + "attributes": { + "constant": false, + "name": "targets", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "address[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "address[]" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2515, + "name": "ElementaryTypeName", + "src": "3965:7:3" + } + ], + "id": 2516, + "name": "ArrayTypeName", + "src": "3965:9:3" + } + ], + "id": 2517, + "name": "VariableDeclaration", + "src": "3965:17:3" + }, + { + "attributes": { + "constant": false, + "name": "values", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "uint256[]" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2518, + "name": "ElementaryTypeName", + "src": "4094:4:3" + } + ], + "id": 2519, + "name": "ArrayTypeName", + "src": "4094:6:3" + } + ], + "id": 2520, + "name": "VariableDeclaration", + "src": "4094:13:3" + }, + { + "attributes": { + "constant": false, + "name": "signatures", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "string[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "string[]" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2521, + "name": "ElementaryTypeName", + "src": "4191:6:3" + } + ], + "id": 2522, + "name": "ArrayTypeName", + "src": "4191:8:3" + } + ], + "id": 2523, + "name": "VariableDeclaration", + "src": "4191:19:3" + }, + { + "attributes": { + "constant": false, + "name": "calldatas", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "bytes[]" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2524, + "name": "ElementaryTypeName", + "src": "4296:5:3" + } + ], + "id": 2525, + "name": "ArrayTypeName", + "src": "4296:7:3" + } + ], + "id": 2526, + "name": "VariableDeclaration", + "src": "4296:17:3" + }, + { + "attributes": { + "constant": false, + "name": "startBlock", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2527, + "name": "ElementaryTypeName", + "src": "4432:4:3" + } + ], + "id": 2528, + "name": "VariableDeclaration", + "src": "4432:15:3" + }, + { + "attributes": { + "constant": false, + "name": "endBlock", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2529, + "name": "ElementaryTypeName", + "src": "4549:4:3" + } + ], + "id": 2530, + "name": "VariableDeclaration", + "src": "4549:13:3" + }, + { + "attributes": { + "constant": false, + "name": "forVotes", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2531, + "name": "ElementaryTypeName", + "src": "4643:4:3" + } + ], + "id": 2532, + "name": "VariableDeclaration", + "src": "4643:13:3" + }, + { + "attributes": { + "constant": false, + "name": "againstVotes", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2533, + "name": "ElementaryTypeName", + "src": "4742:4:3" + } + ], + "id": 2534, + "name": "VariableDeclaration", + "src": "4742:17:3" + }, + { + "attributes": { + "constant": false, + "name": "abstainVotes", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2535, + "name": "ElementaryTypeName", + "src": "4847:4:3" + } + ], + "id": 2536, + "name": "VariableDeclaration", + "src": "4847:17:3" + }, + { + "attributes": { + "constant": false, + "name": "canceled", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2537, + "name": "ElementaryTypeName", + "src": "4947:4:3" + } + ], + "id": 2538, + "name": "VariableDeclaration", + "src": "4947:13:3" + }, + { + "attributes": { + "constant": false, + "name": "executed", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2539, + "name": "ElementaryTypeName", + "src": "5043:4:3" + } + ], + "id": 2540, + "name": "VariableDeclaration", + "src": "5043:13:3" + }, + { + "attributes": { + "constant": false, + "name": "receipts", + "scope": 2545, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2541, + "name": "ElementaryTypeName", + "src": "5145:7:3" + }, + { + "attributes": { + "contractScope": null, + "name": "Receipt", + "referencedDeclaration": 2552, + "type": "struct GovernorBravoDelegateStorageV1.Receipt" + }, + "id": 2542, + "name": "UserDefinedTypeName", + "src": "5156:7:3" + } + ], + "id": 2543, + "name": "Mapping", + "src": "5136:28:3" + } + ], + "id": 2544, + "name": "VariableDeclaration", + "src": "5136:37:3" + } + ], + "id": 2545, + "name": "StructDefinition", + "src": "3585:1595:3" + }, + { + "attributes": { + "canonicalName": "GovernorBravoDelegateStorageV1.Receipt", + "name": "Receipt", + "scope": 2562, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "hasVoted", + "scope": 2552, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2546, + "name": "ElementaryTypeName", + "src": "5317:4:3" + } + ], + "id": 2547, + "name": "VariableDeclaration", + "src": "5317:13:3" + }, + { + "attributes": { + "constant": false, + "name": "support", + "scope": 2552, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 2548, + "name": "ElementaryTypeName", + "src": "5420:5:3" + } + ], + "id": 2549, + "name": "VariableDeclaration", + "src": "5420:13:3" + }, + { + "attributes": { + "constant": false, + "name": "votes", + "scope": 2552, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 2550, + "name": "ElementaryTypeName", + "src": "5515:6:3" + } + ], + "id": 2551, + "name": "VariableDeclaration", + "src": "5515:12:3" + } + ], + "id": 2552, + "name": "StructDefinition", + "src": "5236:298:3" + }, + { + "attributes": { + "canonicalName": "GovernorBravoDelegateStorageV1.ProposalState", + "name": "ProposalState" + }, + "children": [ + { + "attributes": { + "name": "Pending" + }, + "id": 2553, + "name": "EnumValue", + "src": "5627:7:3" + }, + { + "attributes": { + "name": "Active" + }, + "id": 2554, + "name": "EnumValue", + "src": "5644:6:3" + }, + { + "attributes": { + "name": "Canceled" + }, + "id": 2555, + "name": "EnumValue", + "src": "5660:8:3" + }, + { + "attributes": { + "name": "Defeated" + }, + "id": 2556, + "name": "EnumValue", + "src": "5678:8:3" + }, + { + "attributes": { + "name": "Succeeded" + }, + "id": 2557, + "name": "EnumValue", + "src": "5696:9:3" + }, + { + "attributes": { + "name": "Queued" + }, + "id": 2558, + "name": "EnumValue", + "src": "5715:6:3" + }, + { + "attributes": { + "name": "Expired" + }, + "id": 2559, + "name": "EnumValue", + "src": "5731:7:3" + }, + { + "attributes": { + "name": "Executed" + }, + "id": 2560, + "name": "EnumValue", + "src": "5748:8:3" + } + ], + "id": 2561, + "name": "EnumDefinition", + "src": "5598:164:3" + } + ], + "id": 2562, + "name": "ContractDefinition", + "src": "2574:3190:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 2626 + ], + "name": "TimelockInterface", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "delay", + "scope": 2626, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2563, + "name": "ParameterList", + "src": "5814:2:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2567, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2564, + "name": "ElementaryTypeName", + "src": "5840:4:3" + } + ], + "id": 2565, + "name": "VariableDeclaration", + "src": "5840:4:3" + } + ], + "id": 2566, + "name": "ParameterList", + "src": "5839:6:3" + } + ], + "id": 2567, + "name": "FunctionDefinition", + "src": "5800:46:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "GRACE_PERIOD", + "scope": 2626, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2568, + "name": "ParameterList", + "src": "5872:2:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2572, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2569, + "name": "ElementaryTypeName", + "src": "5898:4:3" + } + ], + "id": 2570, + "name": "VariableDeclaration", + "src": "5898:4:3" + } + ], + "id": 2571, + "name": "ParameterList", + "src": "5897:6:3" + } + ], + "id": 2572, + "name": "FunctionDefinition", + "src": "5851:53:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "acceptAdmin", + "scope": 2626, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2573, + "name": "ParameterList", + "src": "5929:2:3" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2574, + "name": "ParameterList", + "src": "5940:0:3" + } + ], + "id": 2575, + "name": "FunctionDefinition", + "src": "5909:32:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "queuedTransactions", + "scope": 2626, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "hash", + "scope": 2582, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2576, + "name": "ElementaryTypeName", + "src": "5974:7:3" + } + ], + "id": 2577, + "name": "VariableDeclaration", + "src": "5974:12:3" + } + ], + "id": 2578, + "name": "ParameterList", + "src": "5973:14:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2582, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2579, + "name": "ElementaryTypeName", + "src": "6011:4:3" + } + ], + "id": 2580, + "name": "VariableDeclaration", + "src": "6011:4:3" + } + ], + "id": 2581, + "name": "ParameterList", + "src": "6010:6:3" + } + ], + "id": 2582, + "name": "FunctionDefinition", + "src": "5946:71:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "queueTransaction", + "scope": 2626, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 2597, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2583, + "name": "ElementaryTypeName", + "src": "6048:7:3" + } + ], + "id": 2584, + "name": "VariableDeclaration", + "src": "6048:14:3" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 2597, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2585, + "name": "ElementaryTypeName", + "src": "6064:4:3" + } + ], + "id": 2586, + "name": "VariableDeclaration", + "src": "6064:10:3" + }, + { + "attributes": { + "constant": false, + "name": "signature", + "scope": 2597, + "stateVariable": false, + "storageLocation": "calldata", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2587, + "name": "ElementaryTypeName", + "src": "6076:6:3" + } + ], + "id": 2588, + "name": "VariableDeclaration", + "src": "6076:25:3" + }, + { + "attributes": { + "constant": false, + "name": "data", + "scope": 2597, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2589, + "name": "ElementaryTypeName", + "src": "6103:5:3" + } + ], + "id": 2590, + "name": "VariableDeclaration", + "src": "6103:19:3" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 2597, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2591, + "name": "ElementaryTypeName", + "src": "6124:4:3" + } + ], + "id": 2592, + "name": "VariableDeclaration", + "src": "6124:8:3" + } + ], + "id": 2593, + "name": "ParameterList", + "src": "6047:86:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2597, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2594, + "name": "ElementaryTypeName", + "src": "6152:7:3" + } + ], + "id": 2595, + "name": "VariableDeclaration", + "src": "6152:7:3" + } + ], + "id": 2596, + "name": "ParameterList", + "src": "6151:9:3" + } + ], + "id": 2597, + "name": "FunctionDefinition", + "src": "6022:139:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "cancelTransaction", + "scope": 2626, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 2610, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2598, + "name": "ElementaryTypeName", + "src": "6193:7:3" + } + ], + "id": 2599, + "name": "VariableDeclaration", + "src": "6193:14:3" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 2610, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2600, + "name": "ElementaryTypeName", + "src": "6209:4:3" + } + ], + "id": 2601, + "name": "VariableDeclaration", + "src": "6209:10:3" + }, + { + "attributes": { + "constant": false, + "name": "signature", + "scope": 2610, + "stateVariable": false, + "storageLocation": "calldata", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2602, + "name": "ElementaryTypeName", + "src": "6221:6:3" + } + ], + "id": 2603, + "name": "VariableDeclaration", + "src": "6221:25:3" + }, + { + "attributes": { + "constant": false, + "name": "data", + "scope": 2610, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2604, + "name": "ElementaryTypeName", + "src": "6248:5:3" + } + ], + "id": 2605, + "name": "VariableDeclaration", + "src": "6248:19:3" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 2610, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2606, + "name": "ElementaryTypeName", + "src": "6269:4:3" + } + ], + "id": 2607, + "name": "VariableDeclaration", + "src": "6269:8:3" + } + ], + "id": 2608, + "name": "ParameterList", + "src": "6192:86:3" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2609, + "name": "ParameterList", + "src": "6287:0:3" + } + ], + "id": 2610, + "name": "FunctionDefinition", + "src": "6166:122:3" + }, + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "executeTransaction", + "scope": 2626, + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 2625, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2611, + "name": "ElementaryTypeName", + "src": "6321:7:3" + } + ], + "id": 2612, + "name": "VariableDeclaration", + "src": "6321:14:3" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 2625, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2613, + "name": "ElementaryTypeName", + "src": "6337:4:3" + } + ], + "id": 2614, + "name": "VariableDeclaration", + "src": "6337:10:3" + }, + { + "attributes": { + "constant": false, + "name": "signature", + "scope": 2625, + "stateVariable": false, + "storageLocation": "calldata", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2615, + "name": "ElementaryTypeName", + "src": "6349:6:3" + } + ], + "id": 2616, + "name": "VariableDeclaration", + "src": "6349:25:3" + }, + { + "attributes": { + "constant": false, + "name": "data", + "scope": 2625, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2617, + "name": "ElementaryTypeName", + "src": "6376:5:3" + } + ], + "id": 2618, + "name": "VariableDeclaration", + "src": "6376:19:3" + }, + { + "attributes": { + "constant": false, + "name": "eta", + "scope": 2625, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2619, + "name": "ElementaryTypeName", + "src": "6397:4:3" + } + ], + "id": 2620, + "name": "VariableDeclaration", + "src": "6397:8:3" + } + ], + "id": 2621, + "name": "ParameterList", + "src": "6320:86:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2625, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2622, + "name": "ElementaryTypeName", + "src": "6433:5:3" + } + ], + "id": 2623, + "name": "VariableDeclaration", + "src": "6433:12:3" + } + ], + "id": 2624, + "name": "ParameterList", + "src": "6432:14:3" + } + ], + "id": 2625, + "name": "FunctionDefinition", + "src": "6293:154:3" + } + ], + "id": 2626, + "name": "ContractDefinition", + "src": "5766:683:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 2636 + ], + "name": "CompInterface", + "scope": 2637 + }, + "children": [ + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getPriorVotes", + "scope": 2636, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "account", + "scope": 2635, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2627, + "name": "ElementaryTypeName", + "src": "6504:7:3" + } + ], + "id": 2628, + "name": "VariableDeclaration", + "src": "6504:15:3" + }, + { + "attributes": { + "constant": false, + "name": "blockNumber", + "scope": 2635, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 2629, + "name": "ElementaryTypeName", + "src": "6521:4:3" + } + ], + "id": 2630, + "name": "VariableDeclaration", + "src": "6521:16:3" + } + ], + "id": 2631, + "name": "ParameterList", + "src": "6503:35:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 2635, + "stateVariable": false, + "storageLocation": "default", + "type": "uint96", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint96", + "type": "uint96" + }, + "id": 2632, + "name": "ElementaryTypeName", + "src": "6562:6:3" + } + ], + "id": 2633, + "name": "VariableDeclaration", + "src": "6562:6:3" + } + ], + "id": 2634, + "name": "ParameterList", + "src": "6561:8:3" + } + ], + "id": 2635, + "name": "FunctionDefinition", + "src": "6481:89:3" + } + ], + "id": 2636, + "name": "ContractDefinition", + "src": "6451:121:3" + } + ], + "id": 2637, + "name": "SourceUnit", + "src": "0:6573:3" + }, + "compiler": { + "name": "solc", + "version": "0.5.16" + }, + "networks": {}, + "schemaVersion": "3.4.3", + "updatedAt": "2021-09-05T21:45:41.189Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/packages/omgx/offchain-prototype/README-moved.md b/packages/omgx/offchain-prototype/README-moved.md new file mode 100644 index 000000000000..9d1baa32dd37 --- /dev/null +++ b/packages/omgx/offchain-prototype/README-moved.md @@ -0,0 +1,10 @@ +This subtree was merged from the github.com:enyalabs/omgx_turing +repo. It contains test code corresponding to the modified l2geth +implementation in this branch. + + +In order to for the classifier to work a python environment needs to be made. The required packages are in requirements.txt, the python version to use is 3.6.7. After activitating the conda environment run +```bash +$ python app.py +``` +in the `classifer` directory. \ No newline at end of file diff --git a/packages/omgx/offchain-prototype/bobaKitchen/kitchen.py b/packages/omgx/offchain-prototype/bobaKitchen/kitchen.py new file mode 100644 index 000000000000..45bbafe264a8 --- /dev/null +++ b/packages/omgx/offchain-prototype/bobaKitchen/kitchen.py @@ -0,0 +1,18 @@ +import cairo + +with cairo.SVGSurface("example.svg", 200, 200) as surface: + context = cairo.Context(surface) + x, y, x1, y1 = 0.1, 0.5, 0.4, 0.9 + x2, y2, x3, y3 = 0.6, 0.1, 0.9, 0.5 + context.scale(200, 200) + context.set_line_width(0.04) + context.move_to(x, y) + context.curve_to(x1, y1, x2, y2, x3, y3) + context.stroke() + # context.set_source_rgba(1, 0.2, 0.2, 0.6) + # context.set_line_width(0.02) + # context.move_to(x, y) + # context.line_to(x1, y1) + # context.move_to(x2, y2) + # context.line_to(x3, y3) + # context.stroke() \ No newline at end of file diff --git a/packages/omgx/offchain-prototype/bobaKitchen/liquid.py b/packages/omgx/offchain-prototype/bobaKitchen/liquid.py new file mode 100644 index 000000000000..2971193cd3c1 --- /dev/null +++ b/packages/omgx/offchain-prototype/bobaKitchen/liquid.py @@ -0,0 +1,66 @@ +import turtle +from numpy import complex, array +import colorsys + + +def koch_curve(t, iterations, length, shortening_factor, angle): + if iterations == 0: + # t.left(angle) + t.forward(length) + # print(angle) + + else: + for angle in [60, -120, 60, 0]: + koch_curve(t, iterations - 1, length / shortening_factor, shortening_factor, angle) + t.left(angle) + +t = turtle.Turtle() +t.hideturtle() +t.penup() +t.setpos(-200, 0) +t.pendown() +t.speed(0) + + +# koch_curve(t, 7 , 400, 3, 0) +# t.penup() +# t.setpos(-200, -100) +# t.pendown() + +t.fillcolor('green') + +# start the filling color +t.begin_fill() +koch_curve(t, 3 , 400, 3, 0) +# t.penup() +t.setpos(t.pos()[0], -100) +# t.pendown() + +t.penup() +t.setpos(-200, 0) +t.pendown() +t.setpos(-200, -100) + + +koch_curve(t, 2 , 400, 3, 0) + + +t.fillcolor('green') + +# start the filling color +t.begin_fill() +# t.penup() +t.setpos(-200, -200) +# t.pendown() +koch_curve(t, 4 , 400, 3, 0) +# t.penup() +t.setpos(-200, -300) +# t.pendown() +koch_curve(t, 3 , 400, 3, 0) +# t.penup() +t.setpos(-200, -400) +# t.pendown() +koch_curve(t, 2 , 400, 3, 0) + + +turtle.mainloop() \ No newline at end of file diff --git a/packages/omgx/offchain-prototype/bobaKitchen/pearls.py b/packages/omgx/offchain-prototype/bobaKitchen/pearls.py new file mode 100644 index 000000000000..40891eac9bc5 --- /dev/null +++ b/packages/omgx/offchain-prototype/bobaKitchen/pearls.py @@ -0,0 +1,41 @@ +# Python code for Mandelbrot Fractal + +# Import necessary libraries +from PIL import Image +from numpy import complex, array +import colorsys + +# setting the width of the output image as 1024 +WIDTH = 1024 + +# a function to return a tuple of colors +# as integer value of rgb +def rgb_conv(i): + color = 255 * array(colorsys.hsv_to_rgb(i / 255.0, 1.0, 0.5)) + return tuple(color.astype(int)) + +# function defining a mandelbrot +def mandelbrot(x, y): + c0 = complex(x, y) + c = 0 + for i in range(1, 1000): + if abs(c) > 2: + return rgb_conv(i) + c = c * c + c0 + return (0, 0, 0) + +# creating the new image in RGB mode +img = Image.new('RGB', (WIDTH, int(WIDTH / 2))) +pixels = img.load() + +for x in range(img.size[0]): + + # displaying the progress as percentage + print("%.2f %%" % (x / WIDTH * 100.0)) + for y in range(img.size[1]): + pixels[x, y] = mandelbrot((x - (0.75 * WIDTH)) / (WIDTH / 4), + (y - (WIDTH / 4)) / (WIDTH / 4)) + +# to display the created fractal after +# completing the given number of iterations +img.show() \ No newline at end of file diff --git a/packages/omgx/offchain-prototype/classifier/LICENSE b/packages/omgx/offchain-prototype/classifier/LICENSE new file mode 100644 index 000000000000..a736af8abc10 --- /dev/null +++ b/packages/omgx/offchain-prototype/classifier/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Amitrajit Bose + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/omgx/offchain-prototype/classifier/README.md b/packages/omgx/offchain-prototype/classifier/README.md new file mode 100644 index 000000000000..7d6bf89419e7 --- /dev/null +++ b/packages/omgx/offchain-prototype/classifier/README.md @@ -0,0 +1,488 @@ +
+ +
+ +# Cat Vs Dog Classifier + +### About + +In this project, we build an algorithm, a deep learning model to classify whether images contain either a dog or a cat. This is easy for humans, dogs, and cats. Computers find it a bit more difficult. + +### Data + +The dataset is available at Kaggle and has been provided officially by Microsoft Research.You can find it [here](https://www.kaggle.com/c/dogs-vs-cats/data). + +### Requirements + +We recommend to create a virtual environment using [conda](https://anaconda.org/anaconda/conda) or [virtualenv](https://pypi.org/project/virtualenv/), and then setup environment using `pip install -r requirements.txt` for setting up the environment. We have used **Python 3.6.7** for development. Below is the detailed + +``` +torch==1.1.0 +torchvision==0.3.0 +Flask==1.0.3 +Pillow==6.0.0 +numpy==1.15.4 +pandas==0.23.4 +matplotlib==3.0.2 +requests==2.22.0 +``` + +### Benchmarks + +Our algorithm or model matched an average of 98% accuracy on test set. The best submission on Kaggle for the same is 98.9%. For more details you can check the [leaderboard](https://www.kaggle.com/c/dogs-vs-cats/leaderboard). + +Below is the snapshot that was generated when we were training the model and validating its performance. + ++ +
+ +### API (REST) Endpoint + +**Running The Server** + +- Run `python app.py` to start the server, with default port as `8123`. +- To run on custom port, run `python app.py [PORT]`. + +**Accessing The API** + +