{ "contractName": "GnosisSafe", "abi": [ { "constant": true, "inputs": [ { "name": "", "type": "uint256" } ], "name": "owners", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "isOwner", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "threshold", "outputs": [ { "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" }, { "name": "", "type": "bytes32" } ], "name": "isConfirmed", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "NAME", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "nonce", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "uint256" } ], "name": "extensions", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "isExtension", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "VERSION", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "inputs": [ { "name": "_owners", "type": "address[]" }, { "name": "_threshold", "type": "uint8" }, { "name": "to", "type": "address" }, { "name": "data", "type": "bytes" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "payable": true, "stateMutability": "payable", "type": "fallback" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "newContract", "type": "address" } ], "name": "ContractCreation", "type": "event" }, { "constant": false, "inputs": [ { "name": "_owners", "type": "address[]" }, { "name": "_threshold", "type": "uint8" }, { "name": "to", "type": "address" }, { "name": "data", "type": "bytes" } ], "name": "setup", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_masterCopy", "type": "address" } ], "name": "changeMasterCopy", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "owner", "type": "address" }, { "name": "_threshold", "type": "uint8" } ], "name": "addOwner", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "ownerIndex", "type": "uint256" }, { "name": "owner", "type": "address" }, { "name": "_threshold", "type": "uint8" } ], "name": "removeOwner", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "oldOwnerIndex", "type": "uint256" }, { "name": "oldOwner", "type": "address" }, { "name": "newOwner", "type": "address" } ], "name": "replaceOwner", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_threshold", "type": "uint8" } ], "name": "changeThreshold", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "extension", "type": "address" } ], "name": "addExtension", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "extensionIndex", "type": "uint256" }, { "name": "extension", "type": "address" } ], "name": "removeExtension", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "to", "type": "address" }, { "name": "value", "type": "uint256" }, { "name": "data", "type": "bytes" }, { "name": "operation", "type": "uint8" }, { "name": "_nonce", "type": "uint256" } ], "name": "confirmTransaction", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "to", "type": "address" }, { "name": "value", "type": "uint256" }, { "name": "data", "type": "bytes" }, { "name": "operation", "type": "uint8" }, { "name": "v", "type": "uint8[]" }, { "name": "r", "type": "bytes32[]" }, { "name": "s", "type": "bytes32[]" }, { "name": "_owners", "type": "address[]" }, { "name": "indices", "type": "uint256[]" } ], "name": "executeTransaction", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "to", "type": "address" }, { "name": "value", "type": "uint256" }, { "name": "data", "type": "bytes" }, { "name": "operation", "type": "uint8" }, { "name": "extension", "type": "address" } ], "name": "executeExtension", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "to", "type": "address" }, { "name": "value", "type": "uint256" }, { "name": "data", "type": "bytes" }, { "name": "operation", "type": "uint8" }, { "name": "_nonce", "type": "uint256" } ], "name": "getTransactionHash", "outputs": [ { "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getOwners", "outputs": [ { "name": "", "type": "address[]" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getExtensions", "outputs": [ { "name": "", "type": "address[]" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "transactionHash", "type": "bytes32" } ], "name": "getConfirmationCount", "outputs": [ { "name": "confirmationCount", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "transactionHash", "type": "bytes32" } ], "name": "getConfirmingOwners", "outputs": [ { "name": "confirmingOwners", "type": "address[]" } ], "payable": false, "stateMutability": "view", "type": "function" } ], "bytecode": "0x606060405234156200001057600080fd5b60405162002d6738038062002d67833981016040528080518201919060200180519060200190919080519060200190919080518201919050506200006b84848484620000756401000000000262001b33176401000000009004565b5050505062000374565b600080600060149054906101000a900460ff1660ff161415156200009857600080fd5b84518460ff1611151515620000ac57600080fd5b60018460ff1610151515620000c057600080fd5b600090505b8451811015620001fe5760008582815181101515620000e057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff16141515156200010e57600080fd5b6004600086838151811015156200012157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156200018057600080fd5b60016004600087848151811015156200019557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050620000c5565b8460029080519060200190620002169291906200029f565b5083600060146101000a81548160ff021916908360ff16021790555060008373ffffffffffffffffffffffffffffffffffffffff161415156200028057620002738383620002876401000000000262002698176401000000009004565b15156200027f57600080fd5b5b5050505050565b600080600083516020850186600019f4905092915050565b8280548282559060005260206000209081019282156200031b579160200282015b828111156200031a5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620002c0565b5b5090506200032a91906200032e565b5090565b6200037191905b808211156200036d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555060010162000335565b5090565b90565b6129e380620003846000396000f300606060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063025e7c271461014b57806307fa7017146101ae5780630e5229b0146101f0578063113642e514610235578063170ff3e1146102705780632b500041146102a95780632b5b1f821461035f5780632f54bf6e146103f957806342cde4e81461044a57806354e99c6e146104795780637b0519f3146104da5780637de7edef1461053857806383b7db6314610571578063842b954e146105db578063a04222e114610629578063a0e67e2b146106f1578063a3f4df7e1461075b578063affed0e0146107e9578063b6a9002e14610812578063b7f3358d146108c2578063c676920a146108e8578063db85d59c14610964578063f6d3fd86146109c7578063f847ed4814610b98578063ffa1ad7414610be9575b005b341561015657600080fd5b61016c6004808035906020019091905050610c77565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101b957600080fd5b6101ee600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610cb6565b005b34156101fb57600080fd5b610233600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560ff16906020019091905050610e71565b005b341561024057600080fd5b61025a600480803560001916906020019091905050611011565b6040518082815260200191505060405180910390f35b341561027b57600080fd5b6102a7600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506110e7565b005b34156102b457600080fd5b610341600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff1690602001909190803590602001909190505061125e565b60405180826000191660001916815260200191505060405180910390f35b341561036a57600080fd5b6103f7600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff1690602001909190803590602001909190505061140b565b005b341561040457600080fd5b610430600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611561565b604051808215151515815260200191505060405180910390f35b341561045557600080fd5b61045d611581565b604051808260ff1660ff16815260200191505060405180910390f35b341561048457600080fd5b6104d8600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611594565b005b34156104e557600080fd5b61051e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035600019169060200190919050506117cf565b604051808215151515815260200191505060405180910390f35b341561054357600080fd5b61056f600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506117fe565b005b341561057c57600080fd5b6105846118a1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105c75780820151818401526020810190506105ac565b505050509050019250505060405180910390f35b34156105e657600080fd5b610627600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560ff16906020019091905050611935565b005b341561063457600080fd5b6106ef60048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803560ff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611b33565b005b34156106fc57600080fd5b610704611d21565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561074757808201518184015260208101905061072c565b505050509050019250505060405180910390f35b341561076657600080fd5b61076e611db5565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107ae578082015181840152602081019050610793565b50505050905090810190601f1680156107db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156107f457600080fd5b6107fc611dee565b6040518082815260200191505060405180910390f35b341561081d57600080fd5b6108c0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611df4565b005b34156108cd57600080fd5b6108e6600480803560ff16906020019091905050611fe7565b005b34156108f357600080fd5b61090d600480803560001916906020019091905050612069565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610950578082015181840152602081019050610935565b505050509050019250505060405180910390f35b341561096f57600080fd5b61098560048080359060200190919050506121fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109d257600080fd5b610b96600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff16906020019091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190505061223c565b005b3415610ba357600080fd5b610bcf600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061263f565b604051808215151515815260200191505060405180910390f35b3415610bf457600080fd5b610bfc61265f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c3c578082015181840152602081019050610c21565b50505050905090810190601f168015610c695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600281815481101515610c8657fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cf057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600383815481101515610d1657fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d6457600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506003600160038054905003815481101515610dd357fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600383815481101515610e0e57fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003805480919060019003610e6c91906127ed565b505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610eab57600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614151515610ed157600080fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610f2a57600080fd5b60028054806001018281610f3e9190612819565b9160005260206000209001600084909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508060ff16600060149054906101000a900460ff1660ff1614151561100d5761100c81611fe7565b5b5050565b600080600090505b6002805490508110156110e1576006600060028381548110151561103957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846000191660001916815260200190815260200160002060009054906101000a900460ff16156110d45781806001019250505b8080600101915050611019565b50919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561112157600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561114757600080fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156111a057600080fd5b600380548060010182816111b49190612845565b9160005260206000209001600083909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600060197f01000000000000000000000000000000000000000000000000000000000000000230878787878760405180887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b602083101515611391578051825260208201915060208101905060208303925061136c565b6001836020036101000a0380198251168184511680821785525050505050509050018360028111156113bf57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018281526020019750505050505050506040518091039020905095945050505050565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561146557600080fd5b6114748686868660015461125e565b9050600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000826000191660001916815260200190815260200160002060009054906101000a900460ff161515156114e857600080fd5b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550505050505050565b60046020528060005260406000206000915054906101000a900460ff1681565b600060149054906101000a900460ff1681565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115ce57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156115f457600080fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561164d57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1660028481548110151561167357fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156116c157600080fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508060028481548110151561178157fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561183857600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561185e57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118a9612871565b600380548060200260200160405190810160405280929190818152602001828054801561192b57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116118e1575b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561196f57600080fd5b8060ff166001600280549050031015151561198957600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166002848154811015156119af57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156119fd57600080fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506002600160028054905003815481101515611a6c57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600284815481101515611aa757fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002805480919060019003611b059190612885565b508060ff16600060149054906101000a900460ff1660ff16141515611b2e57611b2d81611fe7565b5b505050565b600080600060149054906101000a900460ff1660ff16141515611b5557600080fd5b84518460ff1611151515611b6857600080fd5b60018460ff1610151515611b7b57600080fd5b600090505b8451811015611cb25760008582815181101515611b9957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614151515611bc657600080fd5b600460008683815181101515611bd857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611c3657600080fd5b6001600460008784815181101515611c4a57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611b80565b8460029080519060200190611cc89291906128b1565b5083600060146101000a81548160ff021916908360ff16021790555060008373ffffffffffffffffffffffffffffffffffffffff16141515611d1a57611d0e8383612698565b1515611d1957600080fd5b5b5050505050565b611d2961293b565b6002805480602002602001604051908101604052809291908181526020018280548015611dab57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611d61575b5050505050905090565b6040805190810160405280600b81526020017f476e6f736973205361666500000000000000000000000000000000000000000081525081565b60015481565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611e4c57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663cde09ca933878787876000604051602001526040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115611f1f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015611f5f578082015181840152602081019050611f44565b50505050905090810190601f168015611f8c5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515611fae57600080fd5b6102c65a03f11515611fbf57600080fd5b505050604051805190501515611fd457600080fd5b611fe0858585856126b0565b5050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561202157600080fd5b6002805490508160ff161115151561203857600080fd5b60018160ff161015151561204b57600080fd5b80600060146101000a81548160ff021916908360ff16021790555050565b61207161293b565b60008061207d84611011565b91508160405180591061208d5750595b9080825280602002602001820160405250925060009150600090505b6002805490508110156121f657600660006002838154811015156120c957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000856000191660001916815260200190815260200160002060009054906101000a900460ff16156121e95760028181548110151561216a57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683838151811015156121a457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081806001019250505b80806001019150506120a9565b5050919050565b60038181548110151561220c57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060006122538e8e8e8e60015461125e565b94506000935060009050600091505b600060149054906101000a900460ff1660ff16821015612518578086511180156122a25750858181518110151561229557fe5b9060200190602002015182145b156123a15786818151811015156122b557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612371575060066000888381518110151561230557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866000191660001916815260200190815260200160002060009054906101000a900460ff165b151561237c57600080fd5b868181518110151561238a57fe5b906020019060200201519250600181019050612476565b6001858b8385038151811015156123b457fe5b906020019060200201518b8486038151811015156123ce57fe5b906020019060200201518b8587038151811015156123e857fe5b90602001906020020151604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f1151561246a57600080fd5b50506020604051035192505b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156124ce57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1611151561250857600080fd5b8293508180600101925050612262565b60008751111561261357600091505b865182101561261257868281518110151561253e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561260557600060066000898581518110151561259057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000876000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8180600101925050612527565b5b6001806000828254019250508190555061262f8e8e8e8e6126b0565b5050505050505050505050505050565b60056020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b600080600083516020850186600019f4905092915050565b60008060028111156126be57fe5b8260028111156126ca57fe5b14156126eb576126db8585856127c1565b15156126e657600080fd5b6127ba565b600160028111156126f857fe5b82600281111561270457fe5b1415612724576127148584612698565b151561271f57600080fd5b6127b9565b61272d836127db565b905060008173ffffffffffffffffffffffffffffffffffffffff161415151561275557600080fd5b7f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5050505050565b60008060008351602085018688600019f190509392505050565b60008151602083016000f09050919050565b81548183558181151161281457818360005260206000209182019101612813919061294f565b5b505050565b8154818355818115116128405781836000526020600020918201910161283f919061294f565b5b505050565b81548183558181151161286c5781836000526020600020918201910161286b919061294f565b5b505050565b602060405190810160405280600081525090565b8154818355818115116128ac578183600052602060002091820191016128ab919061294f565b5b505050565b82805482825590600052602060002090810192821561292a579160200282015b828111156129295782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906128d1565b5b5090506129379190612974565b5090565b602060405190810160405280600081525090565b61297191905b8082111561296d576000816000905550600101612955565b5090565b90565b6129b491905b808211156129b057600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555060010161297a565b5090565b905600a165627a7a72305820b9309aeae0cb4d289bc66fdd1b641936b903e87d406ff75007e08dd9fd54ff590029", "deployedBytecode": "0x606060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063025e7c271461014b57806307fa7017146101ae5780630e5229b0146101f0578063113642e514610235578063170ff3e1146102705780632b500041146102a95780632b5b1f821461035f5780632f54bf6e146103f957806342cde4e81461044a57806354e99c6e146104795780637b0519f3146104da5780637de7edef1461053857806383b7db6314610571578063842b954e146105db578063a04222e114610629578063a0e67e2b146106f1578063a3f4df7e1461075b578063affed0e0146107e9578063b6a9002e14610812578063b7f3358d146108c2578063c676920a146108e8578063db85d59c14610964578063f6d3fd86146109c7578063f847ed4814610b98578063ffa1ad7414610be9575b005b341561015657600080fd5b61016c6004808035906020019091905050610c77565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101b957600080fd5b6101ee600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610cb6565b005b34156101fb57600080fd5b610233600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560ff16906020019091905050610e71565b005b341561024057600080fd5b61025a600480803560001916906020019091905050611011565b6040518082815260200191505060405180910390f35b341561027b57600080fd5b6102a7600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506110e7565b005b34156102b457600080fd5b610341600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff1690602001909190803590602001909190505061125e565b60405180826000191660001916815260200191505060405180910390f35b341561036a57600080fd5b6103f7600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff1690602001909190803590602001909190505061140b565b005b341561040457600080fd5b610430600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611561565b604051808215151515815260200191505060405180910390f35b341561045557600080fd5b61045d611581565b604051808260ff1660ff16815260200191505060405180910390f35b341561048457600080fd5b6104d8600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611594565b005b34156104e557600080fd5b61051e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035600019169060200190919050506117cf565b604051808215151515815260200191505060405180910390f35b341561054357600080fd5b61056f600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506117fe565b005b341561057c57600080fd5b6105846118a1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105c75780820151818401526020810190506105ac565b505050509050019250505060405180910390f35b34156105e657600080fd5b610627600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560ff16906020019091905050611935565b005b341561063457600080fd5b6106ef60048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803560ff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611b33565b005b34156106fc57600080fd5b610704611d21565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561074757808201518184015260208101905061072c565b505050509050019250505060405180910390f35b341561076657600080fd5b61076e611db5565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107ae578082015181840152602081019050610793565b50505050905090810190601f1680156107db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156107f457600080fd5b6107fc611dee565b6040518082815260200191505060405180910390f35b341561081d57600080fd5b6108c0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611df4565b005b34156108cd57600080fd5b6108e6600480803560ff16906020019091905050611fe7565b005b34156108f357600080fd5b61090d600480803560001916906020019091905050612069565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610950578082015181840152602081019050610935565b505050509050019250505060405180910390f35b341561096f57600080fd5b61098560048080359060200190919050506121fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109d257600080fd5b610b96600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff16906020019091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190505061223c565b005b3415610ba357600080fd5b610bcf600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061263f565b604051808215151515815260200191505060405180910390f35b3415610bf457600080fd5b610bfc61265f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c3c578082015181840152602081019050610c21565b50505050905090810190601f168015610c695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600281815481101515610c8657fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cf057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600383815481101515610d1657fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d6457600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506003600160038054905003815481101515610dd357fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600383815481101515610e0e57fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003805480919060019003610e6c91906127ed565b505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610eab57600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614151515610ed157600080fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610f2a57600080fd5b60028054806001018281610f3e9190612819565b9160005260206000209001600084909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508060ff16600060149054906101000a900460ff1660ff1614151561100d5761100c81611fe7565b5b5050565b600080600090505b6002805490508110156110e1576006600060028381548110151561103957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846000191660001916815260200190815260200160002060009054906101000a900460ff16156110d45781806001019250505b8080600101915050611019565b50919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561112157600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561114757600080fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156111a057600080fd5b600380548060010182816111b49190612845565b9160005260206000209001600083909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600060197f01000000000000000000000000000000000000000000000000000000000000000230878787878760405180887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b602083101515611391578051825260208201915060208101905060208303925061136c565b6001836020036101000a0380198251168184511680821785525050505050509050018360028111156113bf57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018281526020019750505050505050506040518091039020905095945050505050565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561146557600080fd5b6114748686868660015461125e565b9050600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000826000191660001916815260200190815260200160002060009054906101000a900460ff161515156114e857600080fd5b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550505050505050565b60046020528060005260406000206000915054906101000a900460ff1681565b600060149054906101000a900460ff1681565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115ce57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156115f457600080fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561164d57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1660028481548110151561167357fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156116c157600080fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508060028481548110151561178157fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561183857600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561185e57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118a9612871565b600380548060200260200160405190810160405280929190818152602001828054801561192b57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116118e1575b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561196f57600080fd5b8060ff166001600280549050031015151561198957600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166002848154811015156119af57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156119fd57600080fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506002600160028054905003815481101515611a6c57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600284815481101515611aa757fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002805480919060019003611b059190612885565b508060ff16600060149054906101000a900460ff1660ff16141515611b2e57611b2d81611fe7565b5b505050565b600080600060149054906101000a900460ff1660ff16141515611b5557600080fd5b84518460ff1611151515611b6857600080fd5b60018460ff1610151515611b7b57600080fd5b600090505b8451811015611cb25760008582815181101515611b9957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614151515611bc657600080fd5b600460008683815181101515611bd857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611c3657600080fd5b6001600460008784815181101515611c4a57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611b80565b8460029080519060200190611cc89291906128b1565b5083600060146101000a81548160ff021916908360ff16021790555060008373ffffffffffffffffffffffffffffffffffffffff16141515611d1a57611d0e8383612698565b1515611d1957600080fd5b5b5050505050565b611d2961293b565b6002805480602002602001604051908101604052809291908181526020018280548015611dab57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611d61575b5050505050905090565b6040805190810160405280600b81526020017f476e6f736973205361666500000000000000000000000000000000000000000081525081565b60015481565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611e4c57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663cde09ca933878787876000604051602001526040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115611f1f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015611f5f578082015181840152602081019050611f44565b50505050905090810190601f168015611f8c5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515611fae57600080fd5b6102c65a03f11515611fbf57600080fd5b505050604051805190501515611fd457600080fd5b611fe0858585856126b0565b5050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561202157600080fd5b6002805490508160ff161115151561203857600080fd5b60018160ff161015151561204b57600080fd5b80600060146101000a81548160ff021916908360ff16021790555050565b61207161293b565b60008061207d84611011565b91508160405180591061208d5750595b9080825280602002602001820160405250925060009150600090505b6002805490508110156121f657600660006002838154811015156120c957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000856000191660001916815260200190815260200160002060009054906101000a900460ff16156121e95760028181548110151561216a57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683838151811015156121a457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081806001019250505b80806001019150506120a9565b5050919050565b60038181548110151561220c57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060006122538e8e8e8e60015461125e565b94506000935060009050600091505b600060149054906101000a900460ff1660ff16821015612518578086511180156122a25750858181518110151561229557fe5b9060200190602002015182145b156123a15786818151811015156122b557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612371575060066000888381518110151561230557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866000191660001916815260200190815260200160002060009054906101000a900460ff165b151561237c57600080fd5b868181518110151561238a57fe5b906020019060200201519250600181019050612476565b6001858b8385038151811015156123b457fe5b906020019060200201518b8486038151811015156123ce57fe5b906020019060200201518b8587038151811015156123e857fe5b90602001906020020151604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f1151561246a57600080fd5b50506020604051035192505b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156124ce57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1611151561250857600080fd5b8293508180600101925050612262565b60008751111561261357600091505b865182101561261257868281518110151561253e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561260557600060066000898581518110151561259057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000876000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8180600101925050612527565b5b6001806000828254019250508190555061262f8e8e8e8e6126b0565b5050505050505050505050505050565b60056020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b600080600083516020850186600019f4905092915050565b60008060028111156126be57fe5b8260028111156126ca57fe5b14156126eb576126db8585856127c1565b15156126e657600080fd5b6127ba565b600160028111156126f857fe5b82600281111561270457fe5b1415612724576127148584612698565b151561271f57600080fd5b6127b9565b61272d836127db565b905060008173ffffffffffffffffffffffffffffffffffffffff161415151561275557600080fd5b7f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5050505050565b60008060008351602085018688600019f190509392505050565b60008151602083016000f09050919050565b81548183558181151161281457818360005260206000209182019101612813919061294f565b5b505050565b8154818355818115116128405781836000526020600020918201910161283f919061294f565b5b505050565b81548183558181151161286c5781836000526020600020918201910161286b919061294f565b5b505050565b602060405190810160405280600081525090565b8154818355818115116128ac578183600052602060002091820191016128ab919061294f565b5b505050565b82805482825590600052602060002090810192821561292a579160200282015b828111156129295782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906128d1565b5b5090506129379190612974565b5090565b602060405190810160405280600081525090565b61297191905b8082111561296d576000816000905550600101612955565b5090565b90565b6129b491905b808211156129b057600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555060010161297a565b5090565b905600a165627a7a72305820b9309aeae0cb4d289bc66fdd1b641936b903e87d406ff75007e08dd9fd54ff590029", "sourceMap": "218:14623:1:-;;;1567:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1677:36;1683:7;1692:10;1704:2;1708:4;1677:5;;;;;:36;;;:::i;:::-;1567:153;;;;218:14623;;2039:1141;2550:9;2289:1;2276:9;;;;;;;;;;;:14;;;2268:23;;;;;;;;2397:7;:14;2383:10;:28;;;;2375:37;;;;;;;;2496:1;2482:10;:15;;;;2474:24;;;;;;;;2562:1;2550:13;;2545:266;2569:7;:14;2565:1;:18;2545:266;;;2671:1;2657:7;2665:1;2657:10;;;;;;;;;;;;;;;;;;:15;;;;2649:24;;;;;;;;2740:7;:19;2748:7;2756:1;2748:10;;;;;;;;;;;;;;;;;;2740:19;;;;;;;;;;;;;;;;;;;;;;;;;2739:20;2731:29;;;;;;;;2796:4;2774:7;:19;2782:7;2790:1;2782:10;;;;;;;;;;;;;;;;;;2774:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;2585:3;;;;;;;2545:266;;;2829:7;2820:6;:16;;;;;;;;;;;;:::i;:::-;;2858:10;2846:9;;:22;;;;;;;;;;;;;;;;;;3048:1;3042:2;:7;;;;3038:135;;;3143:29;3163:2;3167:4;3143:19;;;;;:29;;;:::i;:::-;3135:38;;;;;;;;3038:135;2039:1141;;;;;:::o;12356:225::-;12443:12;12563:1;12560;12553:4;12547:5;12540:4;12534;12530:3;12526:2;12522:1;12518:3;12505:12;12494:71;;12480:95;;;;:::o;218:14623::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", "deployedSourceMap": "218:14623:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;472:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7264:384;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3786:431;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13870:290;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6656:336;;;;;;;;;;;;;;;;;;;;;;;;;;;;13076:249;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7979:506;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;607:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;418:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5468:502;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;892:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3326:220;;;;;;;;;;;;;;;;;;;;;;;;;;;;13603:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;4548:599:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2039:1141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13407:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;295:43:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;446:20:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11178:464;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6159:320;;;;;;;;;;;;;;;;;;;;;;;;;;;;14301:538;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;501:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9222:1531;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;729:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;344:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;472:23:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7264:384::-;1105:4;1083:27;;:10;:27;;;1075:36;;;;;;;;7490:9;7460:39;;:10;7471:14;7460:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;7452:48;;;;;;;;7535:5;7510:11;:22;7522:9;7510:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;7579:10;7610:1;7590:10;:17;;;;:21;7579:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;7550:10;7561:14;7550:26;;;;;;;;;;;;;;;;;;;:62;;;;;;;;;;;;;;;;;;7622:10;:19;;;;;;;;;;;;:::i;:::-;;7264:384;;:::o;3786:431::-;1105:4;1083:27;;:10;:27;;;1075:36;;;;;;;;3943:1;3934:5;:10;;;;3926:19;;;;;;;;4004:7;:14;4012:5;4004:14;;;;;;;;;;;;;;;;;;;;;;;;;4003:15;3995:24;;;;;;;;4029:6;:18;;;;;;;;;;;:::i;:::-;;;;;;;;;;4041:5;4029:18;;;;;;;;;;;;;;;;;;;;;;;4074:4;4057:7;:14;4065:5;4057:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;4159:10;4146:23;;:9;;;;;;;;;;;:23;;;;4142:68;;;4183:27;4199:10;4183:15;:27::i;:::-;4142:68;3786:431;;:::o;13870:290::-;13970:22;14013:6;14022:1;14013:10;;14008:146;14029:6;:13;;;;14025:1;:17;14008:146;;;14067:11;:22;14079:6;14086:1;14079:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;14067:22;;;;;;;;;;;;;;;:39;14090:15;14067:39;;;;;;;;;;;;;;;;;;;;;;;;;;;14063:80;;;14124:19;;;;;;;14063:80;14044:3;;;;;;;14008:146;;;13870:290;;;;:::o;6656:336::-;1105:4;1083:27;;:10;:27;;;1075:36;;;;;;;;6822:1;6808:9;6800:23;;;;6792:32;;;;;;;;6887:11;:22;6899:9;6887:22;;;;;;;;;;;;;;;;;;;;;;;;;6886:23;6878:32;;;;;;;;6920:10;:26;;;;;;;;;;;:::i;:::-;;;;;;;;;;6936:9;6920:26;;;;;;;;;;;;;;;;;;;;;;;6981:4;6956:11;:22;6968:9;6956:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;6656:336;:::o;13076:249::-;13225:7;13270:4;13265:10;;13277:4;13283:2;13287:5;13294:4;13300:9;13311:6;13255:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13248:70:1;;13076:249;;;;;;;:::o;7979:506::-;8220:23;8190:7;:19;8198:10;8190:19;;;;;;;;;;;;;;;;;;;;;;;;;8182:28;;;;;;;;8246:53;8265:2;8269:5;8276:4;8282:9;8293:5;;8246:18;:53::i;:::-;8220:79;;8380:11;:23;8392:10;8380:23;;;;;;;;;;;;;;;:40;8404:15;8380:40;;;;;;;;;;;;;;;;;;;;;;;;;;;8379:41;8371:50;;;;;;;;8474:4;8431:11;:23;8443:10;8431:23;;;;;;;;;;;;;;;:40;8455:15;8431:40;;;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;7979:506;;;;;;:::o;607:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;418:22::-;;;;;;;;;;;;;:::o;5468:502::-;1105:4;1083:27;;:10;:27;;;1075:36;;;;;;;;5658:1;5646:8;:13;;;;5638:22;;;;;;;;5719:7;:17;5727:8;5719:17;;;;;;;;;;;;;;;;;;;;;;;;;5718:18;5710:27;;;;;;;;5842:8;5817:33;;:6;5824:13;5817:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;5809:42;;;;;;;;5881:5;5861:7;:17;5869:8;5861:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;5917:4;5896:7;:17;5904:8;5896:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;5955:8;5931:6;5938:13;5931:21;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;5468:502;;;:::o;892:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3326:220::-;1105:4;1083:27;;:10;:27;;;1075:36;;;;;;;;3503:1;3487:11;3479:25;;;;3471:34;;;;;;;;3528:11;3515:10;;:24;;;;;;;;;;;;;;;;;;3326:220;:::o;13603:121::-;13673:11;;:::i;:::-;13707:10;13700:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13603:121;:::o;4548:599::-;1105:4;1083:27;;:10;:27;;;1075:36;;;;;;;;4776:10;4755:31;;4771:1;4755:6;:13;;;;:17;:31;;4747:40;;;;;;;;4889:5;4867:27;;:6;4874:10;4867:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;4859:36;;;;;;;;4922:5;4905:7;:14;4913:5;4905:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;4958:6;4981:1;4965:6;:13;;;;:17;4958:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;4937:6;4944:10;4937:18;;;;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;4993:6;:15;;;;;;;;;;;;:::i;:::-;;5089:10;5076:23;;:9;;;;;;;;;;;:23;;;;5072:68;;;5113:27;5129:10;5113:15;:27::i;:::-;5072:68;4548:599;;;:::o;2039:1141::-;2550:9;2289:1;2276:9;;;;;;;;;;;:14;;;2268:23;;;;;;;;2397:7;:14;2383:10;:28;;;;2375:37;;;;;;;;2496:1;2482:10;:15;;;;2474:24;;;;;;;;2562:1;2550:13;;2545:266;2569:7;:14;2565:1;:18;2545:266;;;2671:1;2657:7;2665:1;2657:10;;;;;;;;;;;;;;;;;;:15;;;;2649:24;;;;;;;;2740:7;:19;2748:7;2756:1;2748:10;;;;;;;;;;;;;;;;;;2740:19;;;;;;;;;;;;;;;;;;;;;;;;;2739:20;2731:29;;;;;;;;2796:4;2774:7;:19;2782:7;2790:1;2782:10;;;;;;;;;;;;;;;;;;2774:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;2585:3;;;;;;;2545:266;;;2829:7;2820:6;:16;;;;;;;;;;;;:::i;:::-;;2858:10;2846:9;;:22;;;;;;;;;;;;;;;;;;3048:1;3042:2;:7;;;;3038:135;;;3143:29;3163:2;3167:4;3143:19;:29::i;:::-;3135:38;;;;;;;;3038:135;2039:1141;;;;;:::o;13407:111::-;13473:9;;:::i;:::-;13505:6;13498:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13407:111;:::o;295:43::-;;;;;;;;;;;;;;;;;;;;:::o;446:20::-;;;;:::o;11178:464::-;11374:11;:22;11386:9;11374:22;;;;;;;;;;;;;;;;;;;;;;;;;11366:31;;;;;;;;11464:9;:22;;;11487:10;11499:2;11503:5;11510:4;11516:9;11464:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11456:71:1;;;;;;;;11600:35;11608:2;11612:5;11619:4;11625:9;11600:7;:35::i;:::-;11178:464;;;;;:::o;6159:320::-;1105:4;1083:27;;:10;:27;;;1075:36;;;;;;;;6340:6;:13;;;;6326:10;:27;;;;6318:36;;;;;;;;6438:1;6424:10;:15;;;;6416:24;;;;;;;;6462:10;6450:9;;:22;;;;;;;;;;;;;;;;;;6159:320;:::o;14301:538::-;14400:26;;:::i;:::-;14442:22;14611:6;14467:37;14488:15;14467:20;:37::i;:::-;14442:62;;14547:17;14533:32;;;;;;;;;;;;;;;;;;;;;;;;14514:51;;14595:1;14575:21;;14620:1;14611:10;;14606:227;14627:6;:13;;;;14623:1;:17;14606:227;;;14665:11;:22;14677:6;14684:1;14677:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;14665:22;;;;;;;;;;;;;;;:39;14688:15;14665:39;;;;;;;;;;;;;;;;;;;;;;;;;;;14661:162;;;14762:6;14769:1;14762:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;14724:16;14741:17;14724:35;;;;;;;;;;;;;;;;;:47;;;;;;;;;;;14789:19;;;;;;;14661:162;14642:3;;;;;;;14606:227;;;14301:538;;;;;:::o;501:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9222:1531::-;9414:23;9555:17;9595:20;9625:9;9644;9440:53;9459:2;9463:5;9470:4;9476:9;9487:5;;9440:18;:53::i;:::-;9414:79;;9583:1;9555:30;;9656:1;9644:13;;9718:1;9714:5;;9709:651;9725:9;;;;;;;;;;;9721:13;;:1;:13;9709:651;;;9860:1;9843:7;:14;:18;:37;;;;;9870:7;9878:1;9870:10;;;;;;;;;;;;;;;;;;9865:1;:15;9843:37;9839:381;;;9922:7;9930:1;9922:10;;;;;;;;;;;;;;;;;;9908:24;;:10;:24;;;:68;;;;9936:11;:23;9948:7;9956:1;9948:10;;;;;;;;;;;;;;;;;;9936:23;;;;;;;;;;;;;;;:40;9960:15;9936:40;;;;;;;;;;;;;;;;;;;;;;;;;;;9908:68;9900:77;;;;;;;;10010:7;10018:1;10010:10;;;;;;;;;;;;;;;;;;9995:25;;10043:1;10038:6;;;;9839:381;;;10170:50;10180:15;10197:1;10201;10199;:3;10197:6;;;;;;;;;;;;;;;;;;10205:1;10209;10207;:3;10205:6;;;;;;;;;;;;;;;;;;10213:1;10217;10215;:3;10213:6;;;;;;;;;;;;;;;;;;10170:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10155:65;;9839:381;10242:7;:21;10250:12;10242:21;;;;;;;;;;;;;;;;;;;;;;;;;10234:30;;;;;;;;10301:9;10286:24;;:12;:24;;;10278:33;;;;;;;;10337:12;10325:24;;9736:3;;;;;;;9709:651;;;10436:1;10419:7;:14;:18;10415:216;;;10462:1;10458:5;;10453:168;10469:7;:14;10465:1;:18;10453:168;;;10526:7;10534:1;10526:10;;;;;;;;;;;;;;;;;;10512:24;;:10;:24;;;;10508:98;;;10601:5;10558:11;:23;10570:7;10578:1;10570:10;;;;;;;;;;;;;;;;;;10558:23;;;;;;;;;;;;;;;:40;10582:15;10558:40;;;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;10508:98;10485:3;;;;;;;10453:168;;;10415:216;10700:1;10691:5;;:10;;;;;;;;;;;10711:35;10719:2;10723:5;10730:4;10736:9;10711:7;:35::i;:::-;9222:1531;;;;;;;;;;;;;;:::o;729:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;344:40::-;;;;;;;;;;;;;;;;;;;;:::o;12356:225::-;12443:12;12563:1;12560;12553:4;12547:5;12540:4;12534;12530:3;12526:2;12522:1;12518:3;12505:12;12494:71;;12480:95;;;;:::o;11648:465::-;11973:19;11773:14;11760:27;;;;;;;;:9;:27;;;;;;;;;11756:351;;;11809:28;11821:2;11825:5;11832:4;11809:11;:28::i;:::-;11801:37;;;;;;;;11756:351;;;11870:22;11857:35;;;;;;;;:9;:35;;;;;;;;;11853:254;;;11914:29;11934:2;11938:4;11914:19;:29::i;:::-;11906:38;;;;;;;;11853:254;;;11995:19;12009:4;11995:13;:19::i;:::-;11973:41;;12051:1;12036:11;:16;;;;12028:25;;;;;;;;12067:29;12084:11;12067:29;;;;;;;;;;;;;;;;;;;;;;11853:254;11756:351;11648:465;;;;;:::o;12119:231::-;12213:12;12332:1;12329;12322:4;12316:5;12309:4;12303;12299:3;12292:5;12288:2;12284:1;12280:3;12275:4;12264:70;;12250:94;;;;;:::o;12587:197::-;12656:19;12762:4;12756:5;12749:4;12743;12739:3;12736:1;12729:6;12714:54;;12700:78;;;:::o;218:14623::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", "source": "pragma solidity 0.4.19;\nimport \"./Extension.sol\";\n\n\n/// @title Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n/// @author Stefan George - \ncontract GnosisSafe {\n\n event ContractCreation(address newContract);\n\n string public constant NAME = \"Gnosis Safe\";\n string public constant VERSION = \"0.0.1\";\n\n GnosisSafe masterCopy;\n uint8 public threshold;\n uint256 public nonce;\n address[] public owners;\n Extension[] public extensions;\n\n // isOwner mapping allows to check if an address is a Safe owner.\n mapping (address => bool) public isOwner;\n // isExtension mapping allows to check if an extension was whitelisted.\n mapping (address => bool) public isExtension;\n // isConfirmed mapping allows to check if a transaction was confirmed by an owner via a confirm transaction.\n mapping (address => mapping (bytes32 => bool)) public isConfirmed;\n\n enum Operation {\n Call,\n DelegateCall,\n Create\n }\n\n modifier onlyWallet() {\n require(msg.sender == address(this));\n _;\n }\n\n /// @dev Fallback function accepts Ether transactions.\n function ()\n external\n payable\n {\n\n }\n\n /// @dev Constructor function triggers setup function.\n /// @param _owners List of Safe owners.\n /// @param _threshold Number of required confirmations for a Safe transaction.\n /// @param to Contract address for optional delegate call.\n /// @param data Data payload for optional delegate call.\n function GnosisSafe(address[] _owners, uint8 _threshold, address to, bytes data)\n public\n {\n setup(_owners, _threshold, to, data);\n }\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _owners List of Safe owners.\n /// @param _threshold Number of required confirmations for a Safe transaction.\n /// @param to Contract address for optional delegate call.\n /// @param data Data payload for optional delegate call.\n function setup(address[] _owners, uint8 _threshold, address to, bytes data)\n public\n {\n // Threshold can only be 0 at initialization.\n // Check ensures that setup function can only be called once.\n require(threshold == 0);\n // Validate that threshold is smaller than numbr of added owners.\n require(_threshold <= _owners.length);\n // There has to be at least one Safe owner.\n require(_threshold >= 1);\n // Initializing Safe owners.\n for (uint256 i = 0; i < _owners.length; i++) {\n // Owner address cannot be null.\n require(_owners[i] != 0);\n // No duplicate owners allowed.\n require(!isOwner[_owners[i]]);\n isOwner[_owners[i]] = true;\n }\n owners = _owners;\n threshold = _threshold;\n // If a to address is set, an additional delegate call is executed.\n // This call allows further contract setup steps, like adding an extension.\n if (to != 0)\n // Setup has to complete successfully or transaction fails.\n require(executeDelegateCall(to, data));\n }\n\n /// @dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n /// @param _masterCopy New contract address.\n function changeMasterCopy(GnosisSafe _masterCopy)\n public\n onlyWallet\n {\n // Master copy address cannot be null.\n require(address(_masterCopy) != 0);\n masterCopy = _masterCopy;\n }\n\n /// @dev Allows to add a new owner to the Safe and update the threshold at the same time.\n /// This can only be done via a Safe transaction.\n /// @param owner New owner address.\n /// @param _threshold New threshold.\n function addOwner(address owner, uint8 _threshold)\n public\n onlyWallet\n {\n // Owner address cannot be null.\n require(owner != 0);\n // No duplicate owners allowed.\n require(!isOwner[owner]);\n owners.push(owner);\n isOwner[owner] = true;\n // Change threshold if threshold was changed.\n if (threshold != _threshold)\n changeThreshold(_threshold);\n }\n\n /// @dev Allows to remove an owner from the Safe and update the threshold at the same time.\n /// This can only be done via a Safe transaction.\n /// @param ownerIndex Array index position of owner address to be removed.\n /// @param owner Owner address to be removed.\n /// @param _threshold New threshold.\n function removeOwner(uint256 ownerIndex, address owner, uint8 _threshold)\n public\n onlyWallet\n {\n // Only allow to remove an owner, if threshold can still be reached.\n require(owners.length - 1 >= _threshold);\n // Validate owner address corresponds to owner index.\n require(owners[ownerIndex] == owner);\n isOwner[owner] = false;\n owners[ownerIndex] = owners[owners.length - 1];\n owners.length--;\n // Change threshold if threshold was changed.\n if (threshold != _threshold)\n changeThreshold(_threshold);\n }\n\n /// @dev Allows to replace an owner from the Safe with another address.\n /// This can only be done via a Safe transaction.\n /// @param oldOwnerIndex Array index position of owner address to be replaced.\n /// @param oldOwner Owner address to be replaced.\n /// @param newOwner New owner address.\n function replaceOwner(uint256 oldOwnerIndex, address oldOwner, address newOwner)\n public\n onlyWallet\n {\n // Owner address cannot be null.\n require(newOwner != 0);\n // No duplicate owners allowed.\n require(!isOwner[newOwner]);\n // Validate owner address corresponds to owner index.\n require(owners[oldOwnerIndex] == oldOwner);\n isOwner[oldOwner] = false;\n isOwner[newOwner] = true;\n owners[oldOwnerIndex] = newOwner;\n }\n\n /// @dev Allows to update the number of required confirmations by Safe owners.\n /// This can only be done via a Safe transaction.\n /// @param _threshold New threshold.\n function changeThreshold(uint8 _threshold)\n public\n onlyWallet\n {\n // Validate that threshold is smaller than numbr of owners.\n require(_threshold <= owners.length);\n // There has to be at least one Safe owner.\n require(_threshold >= 1);\n threshold = _threshold;\n }\n\n /// @dev Allows to add an extension to the whitelist.\n /// This can only be done via a Safe transaction.\n /// @param extension Extension to be whitelisted.\n function addExtension(Extension extension)\n public\n onlyWallet\n {\n // Extension address cannot be null.\n require(address(extension) != 0);\n // Extension cannot be added twice.\n require(!isExtension[extension]);\n extensions.push(extension);\n isExtension[extension] = true;\n }\n\n /// @dev Allows to remove an extension from the whitelist.\n /// This can only be done via a Safe transaction.\n /// @param extensionIndex Array index position of extension to be removed from whitelist.\n /// @param extension Extension to be removed.\n function removeExtension(uint256 extensionIndex, Extension extension)\n public\n onlyWallet\n {\n // Validate extension address corresponds to extension index.\n require(extensions[extensionIndex] == extension);\n isExtension[extension] = false;\n extensions[extensionIndex] = extensions[extensions.length - 1];\n extensions.length--;\n }\n\n /// @dev Allows to confirm a Safe transaction with a regular transaction.\n /// This can only be done from an owner address.\n /// @param to Destination address.\n /// @param value Ether value.\n /// @param data Data payload.\n /// @param operation Operation type.\n /// @param _nonce Transaction nonce.\n function confirmTransaction(address to, uint256 value, bytes data, Operation operation, uint256 _nonce)\n public\n {\n // Only Safe owners are allowed to confirm Safe transactions.\n require(isOwner[msg.sender]);\n bytes32 transactionHash = getTransactionHash(to, value, data, operation, nonce);\n // It is only possible to confirm a transaction once.\n require(!isConfirmed[msg.sender][transactionHash]);\n isConfirmed[msg.sender][transactionHash] = true;\n }\n\n /// @dev Allows to execute a Safe transaction confirmed by required number of owners.\n /// @param to Destination address of Safe transaction.\n /// @param value Ether value of Safe transaction.\n /// @param data Data payload of Safe transaction.\n /// @param operation Operation type of Safe transaction.\n /// @param v Array of signature V values sorted by owner addresses.\n /// @param r Array of signature R values sorted by owner addresses.\n /// @param s Array of signature S values sorted by owner addresses.\n /// @param _owners List of Safe owners confirming via regular transactions sorted by owner addresses.\n /// @param indices List of indeces of Safe owners confirming via regular transactions.\n function executeTransaction(address to, uint256 value, bytes data, Operation operation, uint8[] v, bytes32[] r, bytes32[] s, address[] _owners, uint256[] indices)\n public\n {\n bytes32 transactionHash = getTransactionHash(to, value, data, operation, nonce);\n // There cannot be an owner with address 0.\n address lastOwner = address(0);\n address currentOwner;\n uint256 i;\n uint256 j = 0;\n // Validate threshold is reached.\n for (i = 0; i < threshold; i++) {\n // Check confirmations done with regular transactions or by msg.sender.\n if (indices.length > j && i == indices[j]) {\n require(msg.sender == _owners[j] || isConfirmed[_owners[j]][transactionHash]);\n currentOwner = _owners[j];\n j += 1;\n }\n // Check confirmations done with signed messages.\n else\n currentOwner = ecrecover(transactionHash, v[i-j], r[i-j], s[i-j]);\n require(isOwner[currentOwner]);\n require(currentOwner > lastOwner);\n lastOwner = currentOwner;\n }\n // Delete storage to receive refunds.\n if (_owners.length > 0) {\n for (i = 0; i < _owners.length; i++) {\n if (msg.sender != _owners[i])\n isConfirmed[_owners[i]][transactionHash] = false;\n }\n }\n // Increase nonce and execute transaction.\n nonce += 1;\n execute(to, value, data, operation);\n }\n\n /// @dev Allows to execute a Safe transaction via an extension without any further confirmations.\n /// @param to Destination address of extension transaction.\n /// @param value Ether value of extension transaction.\n /// @param data Data payload of extension transaction.\n /// @param operation Operation type of extension transaction.\n /// @param extension Extension address of extension transaction.\n function executeExtension(address to, uint256 value, bytes data, Operation operation, Extension extension)\n public\n {\n // Only whitelisted extensions are allowed.\n require(isExtension[extension]);\n // Extension has to confirm transaction.\n require(extension.isExecutable(msg.sender, to, value, data, operation));\n // Exectute transaction without further confirmations.\n execute(to, value, data, operation);\n }\n\n function execute(address to, uint256 value, bytes data, Operation operation)\n internal\n {\n if (operation == Operation.Call)\n require(executeCall(to, value, data));\n else if (operation == Operation.DelegateCall)\n require(executeDelegateCall(to, data));\n else {\n address newContract = executeCreate(data);\n require(newContract != 0);\n ContractCreation(newContract);\n }\n }\n\n function executeCall(address to, uint256 value, bytes data)\n internal\n returns (bool success)\n {\n assembly {\n success := call(not(0), to, value, add(data, 0x20), mload(data), 0, 0)\n }\n }\n\n function executeDelegateCall(address to, bytes data)\n internal\n returns (bool success)\n {\n assembly {\n success := delegatecall(not(0), to, add(data, 0x20), mload(data), 0, 0)\n }\n }\n\n function executeCreate(bytes data)\n internal\n returns (address newContract)\n {\n assembly {\n newContract := create(0, add(data, 0x20), mload(data))\n }\n }\n\n /// @dev Returns transactions hash to be signed by owners.\n /// @param to Destination address.\n /// @param value Ether value.\n /// @param data Data payload.\n /// @param operation Operation type.\n /// @param _nonce Transaction nonce.\n /// @return Transaction hash.\n function getTransactionHash(address to, uint256 value, bytes data, Operation operation, uint256 _nonce)\n public\n view\n returns (bytes32)\n {\n return keccak256(byte(0x19), this, to, value, data, operation, _nonce);\n }\n\n /// @dev Returns array of owners.\n /// @return Array of Safe owners.\n function getOwners()\n public\n view\n returns (address[])\n {\n return owners;\n }\n\n /// @dev Returns array of extensions.\n /// @return Array of extensions.\n function getExtensions()\n public\n view\n returns (Extension[])\n {\n return extensions;\n }\n\n /// @dev Returns a the count of owners that have confirmed the given transaction.\n /// @param transactionHash Safe transaction hash.\n function getConfirmationCount(bytes32 transactionHash)\n public\n view\n returns (uint confirmationCount)\n {\n for (uint i = 0; i < owners.length; i++) {\n if (isConfirmed[owners[i]][transactionHash])\n confirmationCount++;\n }\n }\n\n /// @dev Returns a list of owners that have confirmed the given transaction.\n /// @param transactionHash Safe transaction hash.\n function getConfirmingOwners(bytes32 transactionHash)\n public\n view\n returns (address[] confirmingOwners)\n {\n uint confirmationCount = getConfirmationCount(transactionHash);\n confirmingOwners = new address[](confirmationCount);\n confirmationCount = 0;\n for (uint i = 0; i < owners.length; i++) {\n if (isConfirmed[owners[i]][transactionHash]) {\n confirmingOwners[confirmationCount] = owners[i];\n confirmationCount++;\n }\n }\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "exportedSymbols": { "GnosisSafe": [ 963 ] }, "id": 964, "nodeType": "SourceUnit", "nodes": [ { "id": 20, "literals": [ "solidity", "0.4", ".19" ], "nodeType": "PragmaDirective", "src": "0:23:1" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Extension.sol", "file": "./Extension.sol", "id": 21, "nodeType": "ImportDirective", "scope": 964, "sourceUnit": 19, "src": "24:25:1", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": "@title Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n @author Stefan George - ", "fullyImplemented": true, "id": 963, "linearizedBaseContracts": [ 963 ], "name": "GnosisSafe", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "id": 25, "name": "ContractCreation", "nodeType": "EventDefinition", "parameters": { "id": 24, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 23, "indexed": false, "name": "newContract", "nodeType": "VariableDeclaration", "scope": 25, "src": "268:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 22, "name": "address", "nodeType": "ElementaryTypeName", "src": "268:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "267:21:1" }, "src": "245:44:1" }, { "constant": true, "id": 28, "name": "NAME", "nodeType": "VariableDeclaration", "scope": 963, "src": "295:43:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory", "typeString": "string memory" }, "typeName": { "id": 26, "name": "string", "nodeType": "ElementaryTypeName", "src": "295:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string storage pointer" } }, "value": { "argumentTypes": null, "hexValue": "476e6f7369732053616665", "id": 27, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "325:13:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_72ec6775392f699e8ffd72b7c600556d49bdc746bf22bce93d3ae6019cdaff63", "typeString": "literal_string \"Gnosis Safe\"" }, "value": "Gnosis Safe" }, "visibility": "public" }, { "constant": true, "id": 31, "name": "VERSION", "nodeType": "VariableDeclaration", "scope": 963, "src": "344:40:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory", "typeString": "string memory" }, "typeName": { "id": 29, "name": "string", "nodeType": "ElementaryTypeName", "src": "344:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string storage pointer" } }, "value": { "argumentTypes": null, "hexValue": "302e302e31", "id": 30, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "377:7:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", "typeString": "literal_string \"0.0.1\"" }, "value": "0.0.1" }, "visibility": "public" }, { "constant": false, "id": 33, "name": "masterCopy", "nodeType": "VariableDeclaration", "scope": 963, "src": "391:21:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" }, "typeName": { "contractScope": null, "id": 32, "name": "GnosisSafe", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 963, "src": "391:10:1", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 35, "name": "threshold", "nodeType": "VariableDeclaration", "scope": 963, "src": "418:22:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 34, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "418:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 37, "name": "nonce", "nodeType": "VariableDeclaration", "scope": 963, "src": "446:20:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 36, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "446:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 40, "name": "owners", "nodeType": "VariableDeclaration", "scope": 963, "src": "472:23:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" }, "typeName": { "baseType": { "id": 38, "name": "address", "nodeType": "ElementaryTypeName", "src": "472:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 39, "length": null, "nodeType": "ArrayTypeName", "src": "472:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[] storage pointer" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 43, "name": "extensions", "nodeType": "VariableDeclaration", "scope": 963, "src": "501:29:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_storage", "typeString": "contract Extension[] storage ref" }, "typeName": { "baseType": { "contractScope": null, "id": 41, "name": "Extension", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 18, "src": "501:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "id": 42, "length": null, "nodeType": "ArrayTypeName", "src": "501:11:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_storage_ptr", "typeString": "contract Extension[] storage pointer" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 47, "name": "isOwner", "nodeType": "VariableDeclaration", "scope": 963, "src": "607:40:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "typeName": { "id": 46, "keyType": { "id": 44, "name": "address", "nodeType": "ElementaryTypeName", "src": "616:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "607:25:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { "id": 45, "name": "bool", "nodeType": "ElementaryTypeName", "src": "627:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, "value": null, "visibility": "public" }, { "constant": false, "id": 51, "name": "isExtension", "nodeType": "VariableDeclaration", "scope": 963, "src": "729:44:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "typeName": { "id": 50, "keyType": { "id": 48, "name": "address", "nodeType": "ElementaryTypeName", "src": "738:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "729:25:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { "id": 49, "name": "bool", "nodeType": "ElementaryTypeName", "src": "749:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, "value": null, "visibility": "public" }, { "constant": false, "id": 57, "name": "isConfirmed", "nodeType": "VariableDeclaration", "scope": 963, "src": "892:65:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", "typeString": "mapping(address => mapping(bytes32 => bool))" }, "typeName": { "id": 56, "keyType": { "id": 52, "name": "address", "nodeType": "ElementaryTypeName", "src": "901:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "892:46:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", "typeString": "mapping(address => mapping(bytes32 => bool))" }, "valueType": { "id": 55, "keyType": { "id": 53, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "921:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", "src": "912:25:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { "id": 54, "name": "bool", "nodeType": "ElementaryTypeName", "src": "932:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } } }, "value": null, "visibility": "public" }, { "canonicalName": "GnosisSafe.Operation", "id": 61, "members": [ { "id": 58, "name": "Call", "nodeType": "EnumValue", "src": "989:4:1" }, { "id": 59, "name": "DelegateCall", "nodeType": "EnumValue", "src": "1003:12:1" }, { "id": 60, "name": "Create", "nodeType": "EnumValue", "src": "1025:6:1" } ], "name": "Operation", "nodeType": "EnumDefinition", "src": "964:73:1" }, { "body": { "id": 73, "nodeType": "Block", "src": "1065:64:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 69, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 64, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2089, "src": "1083:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 65, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1083:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 67, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2100, "src": "1105:4:1", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" } ], "id": 66, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1097:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 68, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1097:13:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1083:27:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 63, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "1075:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 70, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1075:36:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 71, "nodeType": "ExpressionStatement", "src": "1075:36:1" }, { "id": 72, "nodeType": "PlaceholderStatement", "src": "1121:1:1" } ] }, "id": 74, "name": "onlyWallet", "nodeType": "ModifierDefinition", "parameters": { "id": 62, "nodeType": "ParameterList", "parameters": [], "src": "1062:2:1" }, "src": "1043:86:1", "visibility": "internal" }, { "body": { "id": 77, "nodeType": "Block", "src": "1243:8:1", "statements": [] }, "id": 78, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 75, "nodeType": "ParameterList", "parameters": [], "src": "1203:2:1" }, "payable": true, "returnParameters": { "id": 76, "nodeType": "ParameterList", "parameters": [], "src": "1243:0:1" }, "scope": 963, "src": "1194:57:1", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { "id": 97, "nodeType": "Block", "src": "1667:53:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 91, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 81, "src": "1683:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, { "argumentTypes": null, "id": 92, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 83, "src": "1692:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, { "argumentTypes": null, "id": 93, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, "src": "1704:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 94, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 87, "src": "1708:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" }, { "typeIdentifier": "t_uint8", "typeString": "uint8" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 90, "name": "setup", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 187, "src": "1677:5:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint8_$_t_address_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address[] memory,uint8,address,bytes memory)" } }, "id": 95, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1677:36:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 96, "nodeType": "ExpressionStatement", "src": "1677:36:1" } ] }, "id": 98, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [], "name": "GnosisSafe", "nodeType": "FunctionDefinition", "parameters": { "id": 88, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 81, "name": "_owners", "nodeType": "VariableDeclaration", "scope": 98, "src": "1587:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" }, "typeName": { "baseType": { "id": 79, "name": "address", "nodeType": "ElementaryTypeName", "src": "1587:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 80, "length": null, "nodeType": "ArrayTypeName", "src": "1587:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[] storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 83, "name": "_threshold", "nodeType": "VariableDeclaration", "scope": 98, "src": "1606:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 82, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "1606:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 85, "name": "to", "nodeType": "VariableDeclaration", "scope": 98, "src": "1624:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 84, "name": "address", "nodeType": "ElementaryTypeName", "src": "1624:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 87, "name": "data", "nodeType": "VariableDeclaration", "scope": 98, "src": "1636:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 86, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1636:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" } ], "src": "1586:61:1" }, "payable": false, "returnParameters": { "id": 89, "nodeType": "ParameterList", "parameters": [], "src": "1667:0:1" }, "scope": 963, "src": "1567:153:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 186, "nodeType": "Block", "src": "2134:1046:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 113, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 111, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 35, "src": "2276:9:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 112, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2289:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "2276:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 110, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "2268:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 114, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2268:23:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 115, "nodeType": "ExpressionStatement", "src": "2268:23:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 120, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 117, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103, "src": "2383:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 118, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 101, "src": "2397:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 119, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2397:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2383:28:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 116, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "2375:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 121, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2375:37:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 122, "nodeType": "ExpressionStatement", "src": "2375:37:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 126, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 124, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103, "src": "2482:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 125, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2496:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "2482:15:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 123, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "2474:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 127, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2474:24:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 128, "nodeType": "ExpressionStatement", "src": "2474:24:1" }, { "body": { "id": 165, "nodeType": "Block", "src": "2590:221:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 145, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 141, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 101, "src": "2657:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 143, "indexExpression": { "argumentTypes": null, "id": 142, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "2665:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2657:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 144, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2671:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "2657:15:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 140, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "2649:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 146, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2649:24:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 147, "nodeType": "ExpressionStatement", "src": "2649:24:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 154, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "2739:20:1", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 149, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "2740:7:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 153, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 150, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 101, "src": "2748:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 152, "indexExpression": { "argumentTypes": null, "id": 151, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "2756:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2748:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2740:19:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 148, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "2731:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 155, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2731:29:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 156, "nodeType": "ExpressionStatement", "src": "2731:29:1" }, { "expression": { "argumentTypes": null, "id": 163, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 157, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "2774:7:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 161, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 158, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 101, "src": "2782:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 160, "indexExpression": { "argumentTypes": null, "id": 159, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "2790:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2782:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2774:19:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 162, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "2796:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "2774:26:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 164, "nodeType": "ExpressionStatement", "src": "2774:26:1" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 136, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 133, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "2565:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 134, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 101, "src": "2569:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 135, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2569:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2565:18:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 166, "initializationExpression": { "assignments": [ 130 ], "declarations": [ { "constant": false, "id": 130, "name": "i", "nodeType": "VariableDeclaration", "scope": 187, "src": "2550:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 129, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2550:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 132, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 131, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2562:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "2550:13:1" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 138, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "2585:3:1", "subExpression": { "argumentTypes": null, "id": 137, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "2585:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 139, "nodeType": "ExpressionStatement", "src": "2585:3:1" }, "nodeType": "ForStatement", "src": "2545:266:1" }, { "expression": { "argumentTypes": null, "id": 169, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 167, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "2820:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 168, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 101, "src": "2829:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "src": "2820:16:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 170, "nodeType": "ExpressionStatement", "src": "2820:16:1" }, { "expression": { "argumentTypes": null, "id": 173, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 171, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 35, "src": "2846:9:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 172, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103, "src": "2858:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "2846:22:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "id": 174, "nodeType": "ExpressionStatement", "src": "2846:22:1" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 177, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 175, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 105, "src": "3042:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 176, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3048:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3042:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 185, "nodeType": "IfStatement", "src": "3038:135:1", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 180, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 105, "src": "3163:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 181, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 107, "src": "3167:4:1", "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": 179, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 815, "src": "3143:19:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,bytes memory) returns (bool)" } }, "id": 182, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3143:29:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 178, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "3135:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 183, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3135:38:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 184, "nodeType": "ExpressionStatement", "src": "3135:38:1" } } ] }, "id": 187, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "setup", "nodeType": "FunctionDefinition", "parameters": { "id": 108, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 101, "name": "_owners", "nodeType": "VariableDeclaration", "scope": 187, "src": "2054:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" }, "typeName": { "baseType": { "id": 99, "name": "address", "nodeType": "ElementaryTypeName", "src": "2054:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 100, "length": null, "nodeType": "ArrayTypeName", "src": "2054:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[] storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 103, "name": "_threshold", "nodeType": "VariableDeclaration", "scope": 187, "src": "2073:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 102, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "2073:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 105, "name": "to", "nodeType": "VariableDeclaration", "scope": 187, "src": "2091:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 104, "name": "address", "nodeType": "ElementaryTypeName", "src": "2091:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 107, "name": "data", "nodeType": "VariableDeclaration", "scope": 187, "src": "2103:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 106, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2103:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" } ], "src": "2053:61:1" }, "payable": false, "returnParameters": { "id": 109, "nodeType": "ParameterList", "parameters": [], "src": "2134:0:1" }, "scope": 963, "src": "2039:1141:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 206, "nodeType": "Block", "src": "3414:132:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 199, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 196, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 189, "src": "3487:11:1", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" } ], "id": 195, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3479:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 197, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3479:20:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 198, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3503:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3479:25:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 194, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "3471:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 200, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3471:34:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 201, "nodeType": "ExpressionStatement", "src": "3471:34:1" }, { "expression": { "argumentTypes": null, "id": 204, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 202, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 33, "src": "3515:10:1", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 203, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 189, "src": "3528:11:1", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" } }, "src": "3515:24:1", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" } }, "id": 205, "nodeType": "ExpressionStatement", "src": "3515:24:1" } ] }, "id": 207, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": [], "id": 192, "modifierName": { "argumentTypes": null, "id": 191, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 74, "src": "3399:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "3399:10:1" } ], "name": "changeMasterCopy", "nodeType": "FunctionDefinition", "parameters": { "id": 190, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 189, "name": "_masterCopy", "nodeType": "VariableDeclaration", "scope": 207, "src": "3352:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" }, "typeName": { "contractScope": null, "id": 188, "name": "GnosisSafe", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 963, "src": "3352:10:1", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" } }, "value": null, "visibility": "internal" } ], "src": "3351:24:1" }, "payable": false, "returnParameters": { "id": 193, "nodeType": "ParameterList", "parameters": [], "src": "3414:0:1" }, "scope": 963, "src": "3326:220:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 249, "nodeType": "Block", "src": "3875:342:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 219, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 217, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 209, "src": "3934:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 218, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3943:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3934:10:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 216, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "3926:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 220, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3926:19:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 221, "nodeType": "ExpressionStatement", "src": "3926:19:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 226, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "4003:15:1", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 223, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "4004:7:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 225, "indexExpression": { "argumentTypes": null, "id": 224, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 209, "src": "4012:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4004:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 222, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "3995:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 227, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3995:24:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 228, "nodeType": "ExpressionStatement", "src": "3995:24:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 232, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 209, "src": "4041:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "id": 229, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "4029:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 231, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4029:11:1", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) returns (uint256)" } }, "id": 233, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4029:18:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 234, "nodeType": "ExpressionStatement", "src": "4029:18:1" }, { "expression": { "argumentTypes": null, "id": 239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 235, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "4057:7:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 237, "indexExpression": { "argumentTypes": null, "id": 236, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 209, "src": "4065:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4057:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 238, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "4074:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "4057:21:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 240, "nodeType": "ExpressionStatement", "src": "4057:21:1" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 243, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 241, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 35, "src": "4146:9:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "id": 242, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 211, "src": "4159:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "4146:23:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 248, "nodeType": "IfStatement", "src": "4142:68:1", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 245, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 211, "src": "4199:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint8", "typeString": "uint8" } ], "id": 244, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 385, "src": "4183:15:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, "id": 246, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4183:27:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 247, "nodeType": "ExpressionStatement", "src": "4183:27:1" } } ] }, "id": 250, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": [], "id": 214, "modifierName": { "argumentTypes": null, "id": 213, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 74, "src": "3860:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "3860:10:1" } ], "name": "addOwner", "nodeType": "FunctionDefinition", "parameters": { "id": 212, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 209, "name": "owner", "nodeType": "VariableDeclaration", "scope": 250, "src": "3804:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 208, "name": "address", "nodeType": "ElementaryTypeName", "src": "3804:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 211, "name": "_threshold", "nodeType": "VariableDeclaration", "scope": 250, "src": "3819:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 210, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "3819:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": null, "visibility": "internal" } ], "src": "3803:33:1" }, "payable": false, "returnParameters": { "id": 215, "nodeType": "ParameterList", "parameters": [], "src": "3875:0:1" }, "scope": 963, "src": "3786:431:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 308, "nodeType": "Block", "src": "4660:487:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 267, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 265, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 262, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "4755:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 263, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4755:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 264, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4771:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "4755:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 266, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 256, "src": "4776:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "4755:31:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 261, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "4747:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 268, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4747:40:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 269, "nodeType": "ExpressionStatement", "src": "4747:40:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 271, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "4867:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 273, "indexExpression": { "argumentTypes": null, "id": 272, "name": "ownerIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 252, "src": "4874:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4867:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 274, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 254, "src": "4889:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "4867:27:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 270, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "4859:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 276, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4859:36:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 277, "nodeType": "ExpressionStatement", "src": "4859:36:1" }, { "expression": { "argumentTypes": null, "id": 282, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 278, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "4905:7:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 280, "indexExpression": { "argumentTypes": null, "id": 279, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 254, "src": "4913:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4905:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", "id": 281, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "4922:5:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "4905:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 283, "nodeType": "ExpressionStatement", "src": "4905:22:1" }, { "expression": { "argumentTypes": null, "id": 293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 284, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "4937:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 286, "indexExpression": { "argumentTypes": null, "id": 285, "name": "ownerIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 252, "src": "4944:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4937:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 287, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "4958:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 292, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 291, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 288, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "4965:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 289, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4965:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 290, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4981:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "4965:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4958:25:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "4937:46:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 294, "nodeType": "ExpressionStatement", "src": "4937:46:1" }, { "expression": { "argumentTypes": null, "id": 298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "--", "prefix": false, "src": "4993:15:1", "subExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 295, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "4993:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 297, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4993:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 299, "nodeType": "ExpressionStatement", "src": "4993:15:1" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 302, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 300, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 35, "src": "5076:9:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "id": 301, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 256, "src": "5089:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "5076:23:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 307, "nodeType": "IfStatement", "src": "5072:68:1", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 304, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 256, "src": "5129:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint8", "typeString": "uint8" } ], "id": 303, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 385, "src": "5113:15:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, "id": 305, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5113:27:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 306, "nodeType": "ExpressionStatement", "src": "5113:27:1" } } ] }, "id": 309, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": [], "id": 259, "modifierName": { "argumentTypes": null, "id": 258, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 74, "src": "4645:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "4645:10:1" } ], "name": "removeOwner", "nodeType": "FunctionDefinition", "parameters": { "id": 257, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 252, "name": "ownerIndex", "nodeType": "VariableDeclaration", "scope": 309, "src": "4569:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 251, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4569:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 254, "name": "owner", "nodeType": "VariableDeclaration", "scope": 309, "src": "4589:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 253, "name": "address", "nodeType": "ElementaryTypeName", "src": "4589:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 256, "name": "_threshold", "nodeType": "VariableDeclaration", "scope": 309, "src": "4604:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 255, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "4604:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": null, "visibility": "internal" } ], "src": "4568:53:1" }, "payable": false, "returnParameters": { "id": 260, "nodeType": "ParameterList", "parameters": [], "src": "4660:0:1" }, "scope": 963, "src": "4548:599:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 359, "nodeType": "Block", "src": "5587:383:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 323, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 321, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 315, "src": "5646:8:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 322, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5658:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "5646:13:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 320, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "5638:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 324, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5638:22:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 325, "nodeType": "ExpressionStatement", "src": "5638:22:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "5718:18:1", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 327, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "5719:7:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 329, "indexExpression": { "argumentTypes": null, "id": 328, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 315, "src": "5727:8:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5719:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 326, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "5710:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 331, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5710:27:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 332, "nodeType": "ExpressionStatement", "src": "5710:27:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 338, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 334, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "5817:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 336, "indexExpression": { "argumentTypes": null, "id": 335, "name": "oldOwnerIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 311, "src": "5824:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5817:21:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 337, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 313, "src": "5842:8:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "5817:33:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 333, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "5809:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 339, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5809:42:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 340, "nodeType": "ExpressionStatement", "src": "5809:42:1" }, { "expression": { "argumentTypes": null, "id": 345, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 341, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "5861:7:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 343, "indexExpression": { "argumentTypes": null, "id": 342, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 313, "src": "5869:8:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5861:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", "id": 344, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "5881:5:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "5861:25:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 346, "nodeType": "ExpressionStatement", "src": "5861:25:1" }, { "expression": { "argumentTypes": null, "id": 351, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 347, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "5896:7:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 349, "indexExpression": { "argumentTypes": null, "id": 348, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 315, "src": "5904:8:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5896:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 350, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "5917:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "5896:25:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 352, "nodeType": "ExpressionStatement", "src": "5896:25:1" }, { "expression": { "argumentTypes": null, "id": 357, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 353, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "5931:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 355, "indexExpression": { "argumentTypes": null, "id": 354, "name": "oldOwnerIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 311, "src": "5938:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5931:21:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 356, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 315, "src": "5955:8:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "5931:32:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 358, "nodeType": "ExpressionStatement", "src": "5931:32:1" } ] }, "id": 360, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": [], "id": 318, "modifierName": { "argumentTypes": null, "id": 317, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 74, "src": "5572:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "5572:10:1" } ], "name": "replaceOwner", "nodeType": "FunctionDefinition", "parameters": { "id": 316, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 311, "name": "oldOwnerIndex", "nodeType": "VariableDeclaration", "scope": 360, "src": "5490:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 310, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5490:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 313, "name": "oldOwner", "nodeType": "VariableDeclaration", "scope": 360, "src": "5513:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 312, "name": "address", "nodeType": "ElementaryTypeName", "src": "5513:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 315, "name": "newOwner", "nodeType": "VariableDeclaration", "scope": 360, "src": "5531:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 314, "name": "address", "nodeType": "ElementaryTypeName", "src": "5531:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "5489:59:1" }, "payable": false, "returnParameters": { "id": 319, "nodeType": "ParameterList", "parameters": [], "src": "5587:0:1" }, "scope": 963, "src": "5468:502:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 384, "nodeType": "Block", "src": "6240:239:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 371, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 368, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 362, "src": "6326:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 369, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "6340:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 370, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6340:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6326:27:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 367, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "6318:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 372, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6318:36:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 373, "nodeType": "ExpressionStatement", "src": "6318:36:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 377, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 375, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 362, "src": "6424:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 376, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6438:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "6424:15:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 374, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "6416:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 378, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6416:24:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 379, "nodeType": "ExpressionStatement", "src": "6416:24:1" }, { "expression": { "argumentTypes": null, "id": 382, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 380, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 35, "src": "6450:9:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 381, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 362, "src": "6462:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "6450:22:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "id": 383, "nodeType": "ExpressionStatement", "src": "6450:22:1" } ] }, "id": 385, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": [], "id": 365, "modifierName": { "argumentTypes": null, "id": 364, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 74, "src": "6225:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "6225:10:1" } ], "name": "changeThreshold", "nodeType": "FunctionDefinition", "parameters": { "id": 363, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 362, "name": "_threshold", "nodeType": "VariableDeclaration", "scope": 385, "src": "6184:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 361, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "6184:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": null, "visibility": "internal" } ], "src": "6183:18:1" }, "payable": false, "returnParameters": { "id": 366, "nodeType": "ParameterList", "parameters": [], "src": "6240:0:1" }, "scope": 963, "src": "6159:320:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 419, "nodeType": "Block", "src": "6737:255:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 397, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 394, "name": "extension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 387, "src": "6808:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } ], "id": 393, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "6800:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 395, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6800:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 396, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6822:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "6800:23:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 392, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "6792:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 398, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6792:32:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 399, "nodeType": "ExpressionStatement", "src": "6792:32:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 404, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "6886:23:1", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 401, "name": "isExtension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51, "src": "6887:11:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 403, "indexExpression": { "argumentTypes": null, "id": 402, "name": "extension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 387, "src": "6899:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6887:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 400, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "6878:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 405, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6878:32:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 406, "nodeType": "ExpressionStatement", "src": "6878:32:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 410, "name": "extension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 387, "src": "6936:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } ], "expression": { "argumentTypes": null, "id": 407, "name": "extensions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, "src": "6920:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_storage", "typeString": "contract Extension[] storage ref" } }, "id": 409, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6920:15:1", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_Extension_$18_$returns$_t_uint256_$", "typeString": "function (contract Extension) returns (uint256)" } }, "id": 411, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6920:26:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 412, "nodeType": "ExpressionStatement", "src": "6920:26:1" }, { "expression": { "argumentTypes": null, "id": 417, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 413, "name": "isExtension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51, "src": "6956:11:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 415, "indexExpression": { "argumentTypes": null, "id": 414, "name": "extension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 387, "src": "6968:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6956:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 416, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "6981:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "6956:29:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 418, "nodeType": "ExpressionStatement", "src": "6956:29:1" } ] }, "id": 420, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": [], "id": 390, "modifierName": { "argumentTypes": null, "id": 389, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 74, "src": "6722:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "6722:10:1" } ], "name": "addExtension", "nodeType": "FunctionDefinition", "parameters": { "id": 388, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 387, "name": "extension", "nodeType": "VariableDeclaration", "scope": 420, "src": "6678:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" }, "typeName": { "contractScope": null, "id": 386, "name": "Extension", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 18, "src": "6678:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "value": null, "visibility": "internal" } ], "src": "6677:21:1" }, "payable": false, "returnParameters": { "id": 391, "nodeType": "ParameterList", "parameters": [], "src": "6737:0:1" }, "scope": 963, "src": "6656:336:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 459, "nodeType": "Block", "src": "7372:276:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" }, "id": 434, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 430, "name": "extensions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, "src": "7460:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_storage", "typeString": "contract Extension[] storage ref" } }, "id": 432, "indexExpression": { "argumentTypes": null, "id": 431, "name": "extensionIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 422, "src": "7471:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7460:26:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 433, "name": "extension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 424, "src": "7490:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "src": "7460:39:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 429, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "7452:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 435, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7452:48:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 436, "nodeType": "ExpressionStatement", "src": "7452:48:1" }, { "expression": { "argumentTypes": null, "id": 441, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 437, "name": "isExtension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51, "src": "7510:11:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 439, "indexExpression": { "argumentTypes": null, "id": 438, "name": "extension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 424, "src": "7522:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "7510:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", "id": 440, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "7535:5:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "7510:30:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 442, "nodeType": "ExpressionStatement", "src": "7510:30:1" }, { "expression": { "argumentTypes": null, "id": 452, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 443, "name": "extensions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, "src": "7550:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_storage", "typeString": "contract Extension[] storage ref" } }, "id": 445, "indexExpression": { "argumentTypes": null, "id": 444, "name": "extensionIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 422, "src": "7561:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "7550:26:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 446, "name": "extensions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, "src": "7579:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_storage", "typeString": "contract Extension[] storage ref" } }, "id": 451, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 450, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 447, "name": "extensions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, "src": "7590:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_storage", "typeString": "contract Extension[] storage ref" } }, "id": 448, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7590:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 449, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7610:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "7590:21:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7579:33:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "src": "7550:62:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "id": 453, "nodeType": "ExpressionStatement", "src": "7550:62:1" }, { "expression": { "argumentTypes": null, "id": 457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "--", "prefix": false, "src": "7622:19:1", "subExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 454, "name": "extensions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, "src": "7622:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_storage", "typeString": "contract Extension[] storage ref" } }, "id": 456, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7622:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 458, "nodeType": "ExpressionStatement", "src": "7622:19:1" } ] }, "id": 460, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": [], "id": 427, "modifierName": { "argumentTypes": null, "id": 426, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 74, "src": "7357:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "7357:10:1" } ], "name": "removeExtension", "nodeType": "FunctionDefinition", "parameters": { "id": 425, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 422, "name": "extensionIndex", "nodeType": "VariableDeclaration", "scope": 460, "src": "7289:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 421, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7289:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 424, "name": "extension", "nodeType": "VariableDeclaration", "scope": 460, "src": "7313:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" }, "typeName": { "contractScope": null, "id": 423, "name": "Extension", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 18, "src": "7313:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "value": null, "visibility": "internal" } ], "src": "7288:45:1" }, "payable": false, "returnParameters": { "id": 428, "nodeType": "ParameterList", "parameters": [], "src": "7372:0:1" }, "scope": 963, "src": "7264:384:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 509, "nodeType": "Block", "src": "8102:383:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 474, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "8190:7:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 477, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 475, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2089, "src": "8198:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 476, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8198:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8190:19:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 473, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "8182:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 478, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8182:28:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 479, "nodeType": "ExpressionStatement", "src": "8182:28:1" }, { "assignments": [ 481 ], "declarations": [ { "constant": false, "id": 481, "name": "transactionHash", "nodeType": "VariableDeclaration", "scope": 510, "src": "8220:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 480, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "8220:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "id": 489, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 483, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 462, "src": "8265:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 484, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 464, "src": "8269:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 485, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 466, "src": "8276:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "argumentTypes": null, "id": 486, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 468, "src": "8282:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, { "argumentTypes": null, "id": 487, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 37, "src": "8293:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 482, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 852, "src": "8246:18:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$61_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (address,uint256,bytes memory,enum GnosisSafe.Operation,uint256) view returns (bytes32)" } }, "id": 488, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8246:53:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", "src": "8220:79:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 497, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "8379:41:1", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 491, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 57, "src": "8380:11:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", "typeString": "mapping(address => mapping(bytes32 => bool))" } }, "id": 494, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 492, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2089, "src": "8392:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 493, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8392:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8380:23:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, "id": 496, "indexExpression": { "argumentTypes": null, "id": 495, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 481, "src": "8404:15:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8380:40:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 490, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "8371:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 498, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8371:50:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 499, "nodeType": "ExpressionStatement", "src": "8371:50:1" }, { "expression": { "argumentTypes": null, "id": 507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 500, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 57, "src": "8431:11:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", "typeString": "mapping(address => mapping(bytes32 => bool))" } }, "id": 504, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 501, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2089, "src": "8443:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8443:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8431:23:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, "id": 505, "indexExpression": { "argumentTypes": null, "id": 503, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 481, "src": "8455:15:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "8431:40:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 506, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "8474:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "8431:47:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 508, "nodeType": "ExpressionStatement", "src": "8431:47:1" } ] }, "id": 510, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "confirmTransaction", "nodeType": "FunctionDefinition", "parameters": { "id": 471, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 462, "name": "to", "nodeType": "VariableDeclaration", "scope": 510, "src": "8007:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 461, "name": "address", "nodeType": "ElementaryTypeName", "src": "8007:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 464, "name": "value", "nodeType": "VariableDeclaration", "scope": 510, "src": "8019:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 463, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8019:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 466, "name": "data", "nodeType": "VariableDeclaration", "scope": 510, "src": "8034:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 465, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8034:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 468, "name": "operation", "nodeType": "VariableDeclaration", "scope": 510, "src": "8046:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, "typeName": { "contractScope": null, "id": 467, "name": "Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 61, "src": "8046:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 470, "name": "_nonce", "nodeType": "VariableDeclaration", "scope": 510, "src": "8067:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 469, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8067:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "8006:76:1" }, "payable": false, "returnParameters": { "id": 472, "nodeType": "ParameterList", "parameters": [], "src": "8102:0:1" }, "scope": 963, "src": "7979:506:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 697, "nodeType": "Block", "src": "9404:1349:1", "statements": [ { "assignments": [ 537 ], "declarations": [ { "constant": false, "id": 537, "name": "transactionHash", "nodeType": "VariableDeclaration", "scope": 698, "src": "9414:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 536, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "9414:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "id": 545, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 539, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 512, "src": "9459:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 540, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 514, "src": "9463:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 541, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 516, "src": "9470:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "argumentTypes": null, "id": 542, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 518, "src": "9476:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, { "argumentTypes": null, "id": 543, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 37, "src": "9487:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 538, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 852, "src": "9440:18:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$61_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (address,uint256,bytes memory,enum GnosisSafe.Operation,uint256) view returns (bytes32)" } }, "id": 544, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9440:53:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", "src": "9414:79:1" }, { "assignments": [ 547 ], "declarations": [ { "constant": false, "id": 547, "name": "lastOwner", "nodeType": "VariableDeclaration", "scope": 698, "src": "9555:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 546, "name": "address", "nodeType": "ElementaryTypeName", "src": "9555:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "id": 551, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 549, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9583: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": 548, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9575:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 550, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9575:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "9555:30:1" }, { "assignments": [], "declarations": [ { "constant": false, "id": 553, "name": "currentOwner", "nodeType": "VariableDeclaration", "scope": 698, "src": "9595:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 552, "name": "address", "nodeType": "ElementaryTypeName", "src": "9595:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "id": 554, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "9595:20:1" }, { "assignments": [], "declarations": [ { "constant": false, "id": 556, "name": "i", "nodeType": "VariableDeclaration", "scope": 698, "src": "9625:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 555, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9625:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 557, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "9625:9:1" }, { "assignments": [ 559 ], "declarations": [ { "constant": false, "id": 559, "name": "j", "nodeType": "VariableDeclaration", "scope": 698, "src": "9644:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 558, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9644:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 561, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 560, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9656:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "9644:13:1" }, { "body": { "id": 648, "nodeType": "Block", "src": "9741:619:1", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 581, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 575, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 572, "name": "indices", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 533, "src": "9843:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, "id": 573, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9843:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "id": 574, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 559, "src": "9860:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9843:18:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 580, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 576, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "9865:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 577, "name": "indices", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 533, "src": "9870:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, "id": 579, "indexExpression": { "argumentTypes": null, "id": 578, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 559, "src": "9878:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9870:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9865:15:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "9843:37:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "expression": { "argumentTypes": null, "id": 629, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 610, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "10155:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 612, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 537, "src": "10180:15:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 613, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 521, "src": "10197:1:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", "typeString": "uint8[] memory" } }, "id": 617, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 616, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 614, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "10199:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 615, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 559, "src": "10201:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10199:3:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10197:6:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 618, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 524, "src": "10205:1:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, "id": 622, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 621, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 619, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "10207:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 620, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 559, "src": "10209:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10207:3:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10205:6:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 623, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 527, "src": "10213:1:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, "id": 627, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 626, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 624, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "10215:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 625, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 559, "src": "10217:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10215:3:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10213:6: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": 611, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2082, "src": "10170: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": 628, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10170:50:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "10155:65:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 630, "nodeType": "ExpressionStatement", "src": "10155:65:1" }, "id": 631, "nodeType": "IfStatement", "src": "9839:381:1", "trueBody": { "id": 609, "nodeType": "Block", "src": "9882:177:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 596, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 588, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 583, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2089, "src": "9908:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 584, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9908:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 585, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 530, "src": "9922:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 587, "indexExpression": { "argumentTypes": null, "id": 586, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 559, "src": "9930:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9922:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "9908:24:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 589, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 57, "src": "9936:11:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", "typeString": "mapping(address => mapping(bytes32 => bool))" } }, "id": 593, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 590, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 530, "src": "9948:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 592, "indexExpression": { "argumentTypes": null, "id": 591, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 559, "src": "9956:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9948:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9936:23:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, "id": 595, "indexExpression": { "argumentTypes": null, "id": 594, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 537, "src": "9960:15:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9936:40:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "9908:68:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 582, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "9900:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 597, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9900:77:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 598, "nodeType": "ExpressionStatement", "src": "9900:77:1" }, { "expression": { "argumentTypes": null, "id": 603, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 599, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "9995:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 600, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 530, "src": "10010:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 602, "indexExpression": { "argumentTypes": null, "id": 601, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 559, "src": "10018:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10010:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "9995:25:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 604, "nodeType": "ExpressionStatement", "src": "9995:25:1" }, { "expression": { "argumentTypes": null, "id": 607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 605, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 559, "src": "10038:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "hexValue": "31", "id": 606, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10043:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "10038:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 608, "nodeType": "ExpressionStatement", "src": "10038:6:1" } ] } }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 633, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "10242:7:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 635, "indexExpression": { "argumentTypes": null, "id": 634, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "10250:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10242:21:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 632, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "10234:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 636, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10234:30:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 637, "nodeType": "ExpressionStatement", "src": "10234:30:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 641, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 639, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "10286:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "id": 640, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 547, "src": "10301:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "10286:24:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 638, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "10278:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 642, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10278:33:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 643, "nodeType": "ExpressionStatement", "src": "10278:33:1" }, { "expression": { "argumentTypes": null, "id": 646, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 644, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 547, "src": "10325:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 645, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "10337:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "10325:24:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 647, "nodeType": "ExpressionStatement", "src": "10325:24:1" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 568, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 566, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "9721:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 567, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 35, "src": "9725:9:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "9721:13:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 649, "initializationExpression": { "expression": { "argumentTypes": null, "id": 564, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 562, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "9714:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 563, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9718:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "9714:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 565, "nodeType": "ExpressionStatement", "src": "9714:5:1" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 570, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "9736:3:1", "subExpression": { "argumentTypes": null, "id": 569, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "9736:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 571, "nodeType": "ExpressionStatement", "src": "9736:3:1" }, "nodeType": "ForStatement", "src": "9709:651:1" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 653, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 650, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 530, "src": "10419:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 651, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10419:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 652, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10436:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "10419:18:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 685, "nodeType": "IfStatement", "src": "10415:216:1", "trueBody": { "id": 684, "nodeType": "Block", "src": "10439:192:1", "statements": [ { "body": { "id": 682, "nodeType": "Block", "src": "10490:131:1", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 670, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 665, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2089, "src": "10512:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 666, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10512:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 667, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 530, "src": "10526:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 669, "indexExpression": { "argumentTypes": null, "id": 668, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "10534:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10526:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "10512:24:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 681, "nodeType": "IfStatement", "src": "10508:98:1", "trueBody": { "expression": { "argumentTypes": null, "id": 679, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 671, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 57, "src": "10558:11:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", "typeString": "mapping(address => mapping(bytes32 => bool))" } }, "id": 676, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 672, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 530, "src": "10570:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 674, "indexExpression": { "argumentTypes": null, "id": 673, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "10578:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10570:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10558:23:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, "id": 677, "indexExpression": { "argumentTypes": null, "id": 675, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 537, "src": "10582:15:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "10558:40:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", "id": 678, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "10601:5:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "10558:48:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 680, "nodeType": "ExpressionStatement", "src": "10558:48:1" } } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 661, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 658, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "10465:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 659, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 530, "src": "10469:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 660, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10469:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10465:18:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 683, "initializationExpression": { "expression": { "argumentTypes": null, "id": 656, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 654, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "10458:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 655, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10462:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "10458:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 657, "nodeType": "ExpressionStatement", "src": "10458:5:1" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 663, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "10485:3:1", "subExpression": { "argumentTypes": null, "id": 662, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "10485:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 664, "nodeType": "ExpressionStatement", "src": "10485:3:1" }, "nodeType": "ForStatement", "src": "10453:168:1" } ] } }, { "expression": { "argumentTypes": null, "id": 688, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 686, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 37, "src": "10691:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "hexValue": "31", "id": 687, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10700:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "10691:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 689, "nodeType": "ExpressionStatement", "src": "10691:10:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 691, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 512, "src": "10719:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 692, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 514, "src": "10723:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 693, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 516, "src": "10730:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "argumentTypes": null, "id": 694, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 518, "src": "10736:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } ], "id": 690, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 791, "src": "10711:7:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$61_$returns$__$", "typeString": "function (address,uint256,bytes memory,enum GnosisSafe.Operation)" } }, "id": 695, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10711:35:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 696, "nodeType": "ExpressionStatement", "src": "10711:35:1" } ] }, "id": 698, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "executeTransaction", "nodeType": "FunctionDefinition", "parameters": { "id": 534, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 512, "name": "to", "nodeType": "VariableDeclaration", "scope": 698, "src": "9250:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 511, "name": "address", "nodeType": "ElementaryTypeName", "src": "9250:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 514, "name": "value", "nodeType": "VariableDeclaration", "scope": 698, "src": "9262:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 513, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9262:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 516, "name": "data", "nodeType": "VariableDeclaration", "scope": 698, "src": "9277:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 515, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "9277:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 518, "name": "operation", "nodeType": "VariableDeclaration", "scope": 698, "src": "9289:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, "typeName": { "contractScope": null, "id": 517, "name": "Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 61, "src": "9289:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 521, "name": "v", "nodeType": "VariableDeclaration", "scope": 698, "src": "9310:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", "typeString": "uint8[] memory" }, "typeName": { "baseType": { "id": 519, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "9310:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "id": 520, "length": null, "nodeType": "ArrayTypeName", "src": "9310:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", "typeString": "uint8[] storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 524, "name": "r", "nodeType": "VariableDeclaration", "scope": 698, "src": "9321:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" }, "typeName": { "baseType": { "id": 522, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "9321:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 523, "length": null, "nodeType": "ArrayTypeName", "src": "9321:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[] storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 527, "name": "s", "nodeType": "VariableDeclaration", "scope": 698, "src": "9334:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" }, "typeName": { "baseType": { "id": 525, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "9334:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 526, "length": null, "nodeType": "ArrayTypeName", "src": "9334:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[] storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 530, "name": "_owners", "nodeType": "VariableDeclaration", "scope": 698, "src": "9347:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" }, "typeName": { "baseType": { "id": 528, "name": "address", "nodeType": "ElementaryTypeName", "src": "9347:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 529, "length": null, "nodeType": "ArrayTypeName", "src": "9347:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[] storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 533, "name": "indices", "nodeType": "VariableDeclaration", "scope": 698, "src": "9366:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" }, "typeName": { "baseType": { "id": 531, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9366:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 532, "length": null, "nodeType": "ArrayTypeName", "src": "9366:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[] storage pointer" } }, "value": null, "visibility": "internal" } ], "src": "9249:135:1" }, "payable": false, "returnParameters": { "id": 535, "nodeType": "ParameterList", "parameters": [], "src": "9404:0:1" }, "scope": 963, "src": "9222:1531:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 736, "nodeType": "Block", "src": "11304:338:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 712, "name": "isExtension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51, "src": "11374:11:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 714, "indexExpression": { "argumentTypes": null, "id": 713, "name": "extension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 708, "src": "11386:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11374:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 711, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "11366:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 715, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11366:31:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 716, "nodeType": "ExpressionStatement", "src": "11366:31:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 720, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2089, "src": "11487:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 721, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11487:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 722, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 700, "src": "11499:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 723, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 702, "src": "11503:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 724, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 704, "src": "11510:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "argumentTypes": null, "id": 725, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 706, "src": "11516:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } ], "expression": { "argumentTypes": null, "id": 718, "name": "extension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 708, "src": "11464:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "id": 719, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isExecutable", "nodeType": "MemberAccess", "referencedDeclaration": 17, "src": "11464:22:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$61_$returns$_t_bool_$", "typeString": "function (address,address,uint256,bytes memory,enum GnosisSafe.Operation) external returns (bool)" } }, "id": 726, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11464:62:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 717, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "11456:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 727, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11456:71:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 728, "nodeType": "ExpressionStatement", "src": "11456:71:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 730, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 700, "src": "11608:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 731, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 702, "src": "11612:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 732, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 704, "src": "11619:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "argumentTypes": null, "id": 733, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 706, "src": "11625:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } ], "id": 729, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 791, "src": "11600:7:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$61_$returns$__$", "typeString": "function (address,uint256,bytes memory,enum GnosisSafe.Operation)" } }, "id": 734, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11600:35:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 735, "nodeType": "ExpressionStatement", "src": "11600:35:1" } ] }, "id": 737, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "executeExtension", "nodeType": "FunctionDefinition", "parameters": { "id": 709, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 700, "name": "to", "nodeType": "VariableDeclaration", "scope": 737, "src": "11204:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 699, "name": "address", "nodeType": "ElementaryTypeName", "src": "11204:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 702, "name": "value", "nodeType": "VariableDeclaration", "scope": 737, "src": "11216:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 701, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11216:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 704, "name": "data", "nodeType": "VariableDeclaration", "scope": 737, "src": "11231:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 703, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "11231:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 706, "name": "operation", "nodeType": "VariableDeclaration", "scope": 737, "src": "11243:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, "typeName": { "contractScope": null, "id": 705, "name": "Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 61, "src": "11243:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 708, "name": "extension", "nodeType": "VariableDeclaration", "scope": 737, "src": "11264:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" }, "typeName": { "contractScope": null, "id": 707, "name": "Extension", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 18, "src": "11264:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "value": null, "visibility": "internal" } ], "src": "11203:81:1" }, "payable": false, "returnParameters": { "id": 710, "nodeType": "ParameterList", "parameters": [], "src": "11304:0:1" }, "scope": 963, "src": "11178:464:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 790, "nodeType": "Block", "src": "11746:367:1", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, "id": 751, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 748, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 745, "src": "11760:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 749, "name": "Operation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 61, "src": "11773:9:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_Operation_$61_$", "typeString": "type(enum GnosisSafe.Operation)" } }, "id": 750, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11773:14:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, "src": "11760:27:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, "id": 763, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 760, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 745, "src": "11857:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 761, "name": "Operation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 61, "src": "11870:9:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_Operation_$61_$", "typeString": "type(enum GnosisSafe.Operation)" } }, "id": 762, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "DelegateCall", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11870:22:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, "src": "11857:35:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 787, "nodeType": "Block", "src": "11959:148:1", "statements": [ { "assignments": [ 772 ], "declarations": [ { "constant": false, "id": 772, "name": "newContract", "nodeType": "VariableDeclaration", "scope": 791, "src": "11973:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 771, "name": "address", "nodeType": "ElementaryTypeName", "src": "11973:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "id": 776, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 774, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 743, "src": "12009:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 773, "name": "executeCreate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 824, "src": "11995:13:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", "typeString": "function (bytes memory) returns (address)" } }, "id": 775, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11995:19:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "11973:41:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 778, "name": "newContract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 772, "src": "12036:11:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 779, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12051:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "12036:16:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 777, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "12028:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 781, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12028:25:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 782, "nodeType": "ExpressionStatement", "src": "12028:25:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 784, "name": "newContract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 772, "src": "12084:11:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 783, "name": "ContractCreation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25, "src": "12067:16:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 785, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12067:29:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 786, "nodeType": "ExpressionStatement", "src": "12067:29:1" } ] }, "id": 788, "nodeType": "IfStatement", "src": "11853:254:1", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 766, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 739, "src": "11934:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 767, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 743, "src": "11938:4:1", "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": 765, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 815, "src": "11914:19:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,bytes memory) returns (bool)" } }, "id": 768, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11914:29:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 764, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "11906:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 769, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11906:38:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 770, "nodeType": "ExpressionStatement", "src": "11906:38:1" } }, "id": 789, "nodeType": "IfStatement", "src": "11756:351:1", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 754, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 739, "src": "11821:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 755, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 741, "src": "11825:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 756, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 743, "src": "11832:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 753, "name": "executeCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 804, "src": "11809:11:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory) returns (bool)" } }, "id": 757, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11809:28:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 752, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "11801:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 758, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11801:37:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 759, "nodeType": "ExpressionStatement", "src": "11801:37:1" } } ] }, "id": 791, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "execute", "nodeType": "FunctionDefinition", "parameters": { "id": 746, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 739, "name": "to", "nodeType": "VariableDeclaration", "scope": 791, "src": "11665:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 738, "name": "address", "nodeType": "ElementaryTypeName", "src": "11665:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 741, "name": "value", "nodeType": "VariableDeclaration", "scope": 791, "src": "11677:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 740, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11677:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 743, "name": "data", "nodeType": "VariableDeclaration", "scope": 791, "src": "11692:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 742, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "11692:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 745, "name": "operation", "nodeType": "VariableDeclaration", "scope": 791, "src": "11704:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, "typeName": { "contractScope": null, "id": 744, "name": "Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 61, "src": "11704:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, "value": null, "visibility": "internal" } ], "src": "11664:60:1" }, "payable": false, "returnParameters": { "id": 747, "nodeType": "ParameterList", "parameters": [], "src": "11746:0:1" }, "scope": 963, "src": "11648:465:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 803, "nodeType": "Block", "src": "12231:119:1", "statements": [ { "externalReferences": [ { "data": { "declaration": 797, "isOffset": false, "isSlot": false, "src": "12303:4:1", "valueSize": 1 } }, { "data": { "declaration": 797, "isOffset": false, "isSlot": false, "src": "12322:4:1", "valueSize": 1 } }, { "success": { "declaration": 800, "isOffset": false, "isSlot": false, "src": "12264:7:1", "valueSize": 1 } }, { "to": { "declaration": 793, "isOffset": false, "isSlot": false, "src": "12288:2:1", "valueSize": 1 } }, { "value": { "declaration": 795, "isOffset": false, "isSlot": false, "src": "12292:5:1", "valueSize": 1 } } ], "id": 802, "nodeType": "InlineAssembly", "operations": "{\n success := call(not(0), to, value, add(data, 0x20), mload(data), 0, 0)\n}", "src": "12241:109:1" } ] }, "id": 804, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "executeCall", "nodeType": "FunctionDefinition", "parameters": { "id": 798, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 793, "name": "to", "nodeType": "VariableDeclaration", "scope": 804, "src": "12140:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 792, "name": "address", "nodeType": "ElementaryTypeName", "src": "12140:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 795, "name": "value", "nodeType": "VariableDeclaration", "scope": 804, "src": "12152:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 794, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12152:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 797, "name": "data", "nodeType": "VariableDeclaration", "scope": 804, "src": "12167:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 796, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "12167:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" } ], "src": "12139:39:1" }, "payable": false, "returnParameters": { "id": 801, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 800, "name": "success", "nodeType": "VariableDeclaration", "scope": 804, "src": "12213:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 799, "name": "bool", "nodeType": "ElementaryTypeName", "src": "12213:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "12212:14:1" }, "scope": 963, "src": "12119:231:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 814, "nodeType": "Block", "src": "12461:120:1", "statements": [ { "externalReferences": [ { "data": { "declaration": 808, "isOffset": false, "isSlot": false, "src": "12534:4:1", "valueSize": 1 } }, { "data": { "declaration": 808, "isOffset": false, "isSlot": false, "src": "12553:4:1", "valueSize": 1 } }, { "success": { "declaration": 811, "isOffset": false, "isSlot": false, "src": "12494:7:1", "valueSize": 1 } }, { "to": { "declaration": 806, "isOffset": false, "isSlot": false, "src": "12526:2:1", "valueSize": 1 } } ], "id": 813, "nodeType": "InlineAssembly", "operations": "{\n success := delegatecall(not(0), to, add(data, 0x20), mload(data), 0, 0)\n}", "src": "12471:110:1" } ] }, "id": 815, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "executeDelegateCall", "nodeType": "FunctionDefinition", "parameters": { "id": 809, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 806, "name": "to", "nodeType": "VariableDeclaration", "scope": 815, "src": "12385:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 805, "name": "address", "nodeType": "ElementaryTypeName", "src": "12385:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 808, "name": "data", "nodeType": "VariableDeclaration", "scope": 815, "src": "12397:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 807, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "12397:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" } ], "src": "12384:24:1" }, "payable": false, "returnParameters": { "id": 812, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 811, "name": "success", "nodeType": "VariableDeclaration", "scope": 815, "src": "12443:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 810, "name": "bool", "nodeType": "ElementaryTypeName", "src": "12443:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "12442:14:1" }, "scope": 963, "src": "12356:225:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 823, "nodeType": "Block", "src": "12681:103:1", "statements": [ { "externalReferences": [ { "data": { "declaration": 817, "isOffset": false, "isSlot": false, "src": "12762:4:1", "valueSize": 1 } }, { "newContract": { "declaration": 820, "isOffset": false, "isSlot": false, "src": "12714:11:1", "valueSize": 1 } }, { "data": { "declaration": 817, "isOffset": false, "isSlot": false, "src": "12743:4:1", "valueSize": 1 } } ], "id": 822, "nodeType": "InlineAssembly", "operations": "{\n newContract := create(0, add(data, 0x20), mload(data))\n}", "src": "12691:93:1" } ] }, "id": 824, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "executeCreate", "nodeType": "FunctionDefinition", "parameters": { "id": 818, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 817, "name": "data", "nodeType": "VariableDeclaration", "scope": 824, "src": "12610:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 816, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "12610:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" } ], "src": "12609:12:1" }, "payable": false, "returnParameters": { "id": 821, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 820, "name": "newContract", "nodeType": "VariableDeclaration", "scope": 824, "src": "12656:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 819, "name": "address", "nodeType": "ElementaryTypeName", "src": "12656:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "12655:21:1" }, "scope": 963, "src": "12587:197:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 851, "nodeType": "Block", "src": "13238:87:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30783139", "id": 841, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13270:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", "typeString": "int_const 25" }, "value": "0x19" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_25_by_1", "typeString": "int_const 25" } ], "id": 840, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "13265:4:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, "id": 842, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13265:10:1", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, { "argumentTypes": null, "id": 843, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2100, "src": "13277:4:1", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" } }, { "argumentTypes": null, "id": 844, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 826, "src": "13283:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 845, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 828, "src": "13287:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 846, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 830, "src": "13294:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "argumentTypes": null, "id": 847, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 832, "src": "13300:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, { "argumentTypes": null, "id": 848, "name": "_nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 834, "src": "13311:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 839, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2083, "src": "13255:9:1", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, "id": 849, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13255:63:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "functionReturnParameters": 838, "id": 850, "nodeType": "Return", "src": "13248:70:1" } ] }, "id": 852, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { "id": 835, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 826, "name": "to", "nodeType": "VariableDeclaration", "scope": 852, "src": "13104:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 825, "name": "address", "nodeType": "ElementaryTypeName", "src": "13104:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 828, "name": "value", "nodeType": "VariableDeclaration", "scope": 852, "src": "13116:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 827, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "13116:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 830, "name": "data", "nodeType": "VariableDeclaration", "scope": 852, "src": "13131:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 829, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "13131:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 832, "name": "operation", "nodeType": "VariableDeclaration", "scope": 852, "src": "13143:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, "typeName": { "contractScope": null, "id": 831, "name": "Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 61, "src": "13143:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 834, "name": "_nonce", "nodeType": "VariableDeclaration", "scope": 852, "src": "13164:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 833, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "13164:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "13103:76:1" }, "payable": false, "returnParameters": { "id": 838, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 837, "name": "", "nodeType": "VariableDeclaration", "scope": 852, "src": "13225:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 836, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "13225:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "src": "13224:9:1" }, "scope": 963, "src": "13076:249:1", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 860, "nodeType": "Block", "src": "13488:30:1", "statements": [ { "expression": { "argumentTypes": null, "id": 858, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "13505:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "functionReturnParameters": 857, "id": 859, "nodeType": "Return", "src": "13498:13:1" } ] }, "id": 861, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "getOwners", "nodeType": "FunctionDefinition", "parameters": { "id": 853, "nodeType": "ParameterList", "parameters": [], "src": "13425:2:1" }, "payable": false, "returnParameters": { "id": 857, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 856, "name": "", "nodeType": "VariableDeclaration", "scope": 861, "src": "13473:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" }, "typeName": { "baseType": { "id": 854, "name": "address", "nodeType": "ElementaryTypeName", "src": "13473:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 855, "length": null, "nodeType": "ArrayTypeName", "src": "13473:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[] storage pointer" } }, "value": null, "visibility": "internal" } ], "src": "13472:11:1" }, "scope": 963, "src": "13407:111:1", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 869, "nodeType": "Block", "src": "13690:34:1", "statements": [ { "expression": { "argumentTypes": null, "id": 867, "name": "extensions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, "src": "13707:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_storage", "typeString": "contract Extension[] storage ref" } }, "functionReturnParameters": 866, "id": 868, "nodeType": "Return", "src": "13700:17:1" } ] }, "id": 870, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "getExtensions", "nodeType": "FunctionDefinition", "parameters": { "id": 862, "nodeType": "ParameterList", "parameters": [], "src": "13625:2:1" }, "payable": false, "returnParameters": { "id": 866, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 865, "name": "", "nodeType": "VariableDeclaration", "scope": 870, "src": "13673:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_memory_ptr", "typeString": "contract Extension[] memory" }, "typeName": { "baseType": { "contractScope": null, "id": 863, "name": "Extension", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 18, "src": "13673:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "id": 864, "length": null, "nodeType": "ArrayTypeName", "src": "13673:11:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_storage_ptr", "typeString": "contract Extension[] storage pointer" } }, "value": null, "visibility": "internal" } ], "src": "13672:13:1" }, "scope": 963, "src": "13603:121:1", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 901, "nodeType": "Block", "src": "13998:162:1", "statements": [ { "body": { "id": 899, "nodeType": "Block", "src": "14049:105:1", "statements": [ { "condition": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 888, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 57, "src": "14067:11:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", "typeString": "mapping(address => mapping(bytes32 => bool))" } }, "id": 892, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 889, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "14079:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 891, "indexExpression": { "argumentTypes": null, "id": 890, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 878, "src": "14086:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14079:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14067:22:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, "id": 894, "indexExpression": { "argumentTypes": null, "id": 893, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 872, "src": "14090:15:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14067:39:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 898, "nodeType": "IfStatement", "src": "14063:80:1", "trueBody": { "expression": { "argumentTypes": null, "id": 896, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "14124:19:1", "subExpression": { "argumentTypes": null, "id": 895, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 875, "src": "14124:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 897, "nodeType": "ExpressionStatement", "src": "14124:19:1" } } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 884, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 881, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 878, "src": "14025:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 882, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "14029:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 883, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "14029:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "14025:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 900, "initializationExpression": { "assignments": [ 878 ], "declarations": [ { "constant": false, "id": 878, "name": "i", "nodeType": "VariableDeclaration", "scope": 902, "src": "14013:6:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 877, "name": "uint", "nodeType": "ElementaryTypeName", "src": "14013:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 880, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 879, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "14022:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "14013:10:1" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 886, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "14044:3:1", "subExpression": { "argumentTypes": null, "id": 885, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 878, "src": "14044:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 887, "nodeType": "ExpressionStatement", "src": "14044:3:1" }, "nodeType": "ForStatement", "src": "14008:146:1" } ] }, "id": 902, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "getConfirmationCount", "nodeType": "FunctionDefinition", "parameters": { "id": 873, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 872, "name": "transactionHash", "nodeType": "VariableDeclaration", "scope": 902, "src": "13900:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 871, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "13900:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "src": "13899:25:1" }, "payable": false, "returnParameters": { "id": 876, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 875, "name": "confirmationCount", "nodeType": "VariableDeclaration", "scope": 902, "src": "13970:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 874, "name": "uint", "nodeType": "ElementaryTypeName", "src": "13970:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "13969:24:1" }, "scope": 963, "src": "13870:290:1", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 961, "nodeType": "Block", "src": "14432:407:1", "statements": [ { "assignments": [ 911 ], "declarations": [ { "constant": false, "id": 911, "name": "confirmationCount", "nodeType": "VariableDeclaration", "scope": 962, "src": "14442:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 910, "name": "uint", "nodeType": "ElementaryTypeName", "src": "14442:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 915, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 913, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 904, "src": "14488:15:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 912, "name": "getConfirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 902, "src": "14467:20:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) view returns (uint256)" } }, "id": 914, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "14467:37:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "14442:62:1" }, { "expression": { "argumentTypes": null, "id": 922, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 916, "name": "confirmingOwners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 908, "src": "14514:16:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 920, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 911, "src": "14547:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 919, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "14533:13:1", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { "id": 917, "name": "address", "nodeType": "ElementaryTypeName", "src": "14537:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 918, "length": null, "nodeType": "ArrayTypeName", "src": "14537:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[] storage pointer" } } }, "id": 921, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "14533:32:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "src": "14514:51:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 923, "nodeType": "ExpressionStatement", "src": "14514:51:1" }, { "expression": { "argumentTypes": null, "id": 926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 924, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 911, "src": "14575:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 925, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "14595:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "14575:21:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 927, "nodeType": "ExpressionStatement", "src": "14575:21:1" }, { "body": { "id": 959, "nodeType": "Block", "src": "14647:186:1", "statements": [ { "condition": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 939, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 57, "src": "14665:11:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", "typeString": "mapping(address => mapping(bytes32 => bool))" } }, "id": 943, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 940, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "14677:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 942, "indexExpression": { "argumentTypes": null, "id": 941, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 929, "src": "14684:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14677:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14665:22:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, "id": 945, "indexExpression": { "argumentTypes": null, "id": 944, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 904, "src": "14688:15:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14665:39:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 958, "nodeType": "IfStatement", "src": "14661:162:1", "trueBody": { "id": 957, "nodeType": "Block", "src": "14706:117:1", "statements": [ { "expression": { "argumentTypes": null, "id": 952, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 946, "name": "confirmingOwners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 908, "src": "14724:16:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 948, "indexExpression": { "argumentTypes": null, "id": 947, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 911, "src": "14741:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "14724:35:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 949, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "14762:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 951, "indexExpression": { "argumentTypes": null, "id": 950, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 929, "src": "14769:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14762:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "14724:47:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 953, "nodeType": "ExpressionStatement", "src": "14724:47:1" }, { "expression": { "argumentTypes": null, "id": 955, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "14789:19:1", "subExpression": { "argumentTypes": null, "id": 954, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 911, "src": "14789:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 956, "nodeType": "ExpressionStatement", "src": "14789:19:1" } ] } } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 935, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 932, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 929, "src": "14623:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 933, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "14627:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 934, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "14627:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "14623:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 960, "initializationExpression": { "assignments": [ 929 ], "declarations": [ { "constant": false, "id": 929, "name": "i", "nodeType": "VariableDeclaration", "scope": 962, "src": "14611:6:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 928, "name": "uint", "nodeType": "ElementaryTypeName", "src": "14611:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 931, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 930, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "14620:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "14611:10:1" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 937, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "14642:3:1", "subExpression": { "argumentTypes": null, "id": 936, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 929, "src": "14642:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 938, "nodeType": "ExpressionStatement", "src": "14642:3:1" }, "nodeType": "ForStatement", "src": "14606:227:1" } ] }, "id": 962, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "getConfirmingOwners", "nodeType": "FunctionDefinition", "parameters": { "id": 905, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 904, "name": "transactionHash", "nodeType": "VariableDeclaration", "scope": 962, "src": "14330:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 903, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "14330:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "src": "14329:25:1" }, "payable": false, "returnParameters": { "id": 909, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 908, "name": "confirmingOwners", "nodeType": "VariableDeclaration", "scope": 962, "src": "14400:26:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" }, "typeName": { "baseType": { "id": 906, "name": "address", "nodeType": "ElementaryTypeName", "src": "14400:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 907, "length": null, "nodeType": "ArrayTypeName", "src": "14400:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[] storage pointer" } }, "value": null, "visibility": "internal" } ], "src": "14399:28:1" }, "scope": 963, "src": "14301:538:1", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], "scope": 964, "src": "218:14623:1" } ], "src": "0:14842:1" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "exportedSymbols": { "GnosisSafe": [ 963 ] }, "id": 964, "nodeType": "SourceUnit", "nodes": [ { "id": 20, "literals": [ "solidity", "0.4", ".19" ], "nodeType": "PragmaDirective", "src": "0:23:1" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Extension.sol", "file": "./Extension.sol", "id": 21, "nodeType": "ImportDirective", "scope": 964, "sourceUnit": 19, "src": "24:25:1", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": "@title Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n @author Stefan George - ", "fullyImplemented": true, "id": 963, "linearizedBaseContracts": [ 963 ], "name": "GnosisSafe", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "id": 25, "name": "ContractCreation", "nodeType": "EventDefinition", "parameters": { "id": 24, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 23, "indexed": false, "name": "newContract", "nodeType": "VariableDeclaration", "scope": 25, "src": "268:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 22, "name": "address", "nodeType": "ElementaryTypeName", "src": "268:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "267:21:1" }, "src": "245:44:1" }, { "constant": true, "id": 28, "name": "NAME", "nodeType": "VariableDeclaration", "scope": 963, "src": "295:43:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory", "typeString": "string memory" }, "typeName": { "id": 26, "name": "string", "nodeType": "ElementaryTypeName", "src": "295:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string storage pointer" } }, "value": { "argumentTypes": null, "hexValue": "476e6f7369732053616665", "id": 27, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "325:13:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_72ec6775392f699e8ffd72b7c600556d49bdc746bf22bce93d3ae6019cdaff63", "typeString": "literal_string \"Gnosis Safe\"" }, "value": "Gnosis Safe" }, "visibility": "public" }, { "constant": true, "id": 31, "name": "VERSION", "nodeType": "VariableDeclaration", "scope": 963, "src": "344:40:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory", "typeString": "string memory" }, "typeName": { "id": 29, "name": "string", "nodeType": "ElementaryTypeName", "src": "344:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string storage pointer" } }, "value": { "argumentTypes": null, "hexValue": "302e302e31", "id": 30, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "377:7:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", "typeString": "literal_string \"0.0.1\"" }, "value": "0.0.1" }, "visibility": "public" }, { "constant": false, "id": 33, "name": "masterCopy", "nodeType": "VariableDeclaration", "scope": 963, "src": "391:21:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" }, "typeName": { "contractScope": null, "id": 32, "name": "GnosisSafe", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 963, "src": "391:10:1", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 35, "name": "threshold", "nodeType": "VariableDeclaration", "scope": 963, "src": "418:22:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 34, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "418:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 37, "name": "nonce", "nodeType": "VariableDeclaration", "scope": 963, "src": "446:20:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 36, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "446:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 40, "name": "owners", "nodeType": "VariableDeclaration", "scope": 963, "src": "472:23:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" }, "typeName": { "baseType": { "id": 38, "name": "address", "nodeType": "ElementaryTypeName", "src": "472:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 39, "length": null, "nodeType": "ArrayTypeName", "src": "472:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[] storage pointer" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 43, "name": "extensions", "nodeType": "VariableDeclaration", "scope": 963, "src": "501:29:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_storage", "typeString": "contract Extension[] storage ref" }, "typeName": { "baseType": { "contractScope": null, "id": 41, "name": "Extension", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 18, "src": "501:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "id": 42, "length": null, "nodeType": "ArrayTypeName", "src": "501:11:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_storage_ptr", "typeString": "contract Extension[] storage pointer" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 47, "name": "isOwner", "nodeType": "VariableDeclaration", "scope": 963, "src": "607:40:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "typeName": { "id": 46, "keyType": { "id": 44, "name": "address", "nodeType": "ElementaryTypeName", "src": "616:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "607:25:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { "id": 45, "name": "bool", "nodeType": "ElementaryTypeName", "src": "627:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, "value": null, "visibility": "public" }, { "constant": false, "id": 51, "name": "isExtension", "nodeType": "VariableDeclaration", "scope": 963, "src": "729:44:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "typeName": { "id": 50, "keyType": { "id": 48, "name": "address", "nodeType": "ElementaryTypeName", "src": "738:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "729:25:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { "id": 49, "name": "bool", "nodeType": "ElementaryTypeName", "src": "749:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, "value": null, "visibility": "public" }, { "constant": false, "id": 57, "name": "isConfirmed", "nodeType": "VariableDeclaration", "scope": 963, "src": "892:65:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", "typeString": "mapping(address => mapping(bytes32 => bool))" }, "typeName": { "id": 56, "keyType": { "id": 52, "name": "address", "nodeType": "ElementaryTypeName", "src": "901:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "892:46:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", "typeString": "mapping(address => mapping(bytes32 => bool))" }, "valueType": { "id": 55, "keyType": { "id": 53, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "921:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", "src": "912:25:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { "id": 54, "name": "bool", "nodeType": "ElementaryTypeName", "src": "932:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } } }, "value": null, "visibility": "public" }, { "canonicalName": "GnosisSafe.Operation", "id": 61, "members": [ { "id": 58, "name": "Call", "nodeType": "EnumValue", "src": "989:4:1" }, { "id": 59, "name": "DelegateCall", "nodeType": "EnumValue", "src": "1003:12:1" }, { "id": 60, "name": "Create", "nodeType": "EnumValue", "src": "1025:6:1" } ], "name": "Operation", "nodeType": "EnumDefinition", "src": "964:73:1" }, { "body": { "id": 73, "nodeType": "Block", "src": "1065:64:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 69, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 64, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2089, "src": "1083:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 65, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1083:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 67, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2100, "src": "1105:4:1", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" } ], "id": 66, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1097:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 68, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1097:13:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1083:27:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 63, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "1075:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 70, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1075:36:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 71, "nodeType": "ExpressionStatement", "src": "1075:36:1" }, { "id": 72, "nodeType": "PlaceholderStatement", "src": "1121:1:1" } ] }, "id": 74, "name": "onlyWallet", "nodeType": "ModifierDefinition", "parameters": { "id": 62, "nodeType": "ParameterList", "parameters": [], "src": "1062:2:1" }, "src": "1043:86:1", "visibility": "internal" }, { "body": { "id": 77, "nodeType": "Block", "src": "1243:8:1", "statements": [] }, "id": 78, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 75, "nodeType": "ParameterList", "parameters": [], "src": "1203:2:1" }, "payable": true, "returnParameters": { "id": 76, "nodeType": "ParameterList", "parameters": [], "src": "1243:0:1" }, "scope": 963, "src": "1194:57:1", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { "id": 97, "nodeType": "Block", "src": "1667:53:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 91, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 81, "src": "1683:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, { "argumentTypes": null, "id": 92, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 83, "src": "1692:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, { "argumentTypes": null, "id": 93, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, "src": "1704:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 94, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 87, "src": "1708:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" }, { "typeIdentifier": "t_uint8", "typeString": "uint8" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 90, "name": "setup", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 187, "src": "1677:5:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint8_$_t_address_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address[] memory,uint8,address,bytes memory)" } }, "id": 95, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1677:36:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 96, "nodeType": "ExpressionStatement", "src": "1677:36:1" } ] }, "id": 98, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [], "name": "GnosisSafe", "nodeType": "FunctionDefinition", "parameters": { "id": 88, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 81, "name": "_owners", "nodeType": "VariableDeclaration", "scope": 98, "src": "1587:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" }, "typeName": { "baseType": { "id": 79, "name": "address", "nodeType": "ElementaryTypeName", "src": "1587:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 80, "length": null, "nodeType": "ArrayTypeName", "src": "1587:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[] storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 83, "name": "_threshold", "nodeType": "VariableDeclaration", "scope": 98, "src": "1606:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 82, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "1606:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 85, "name": "to", "nodeType": "VariableDeclaration", "scope": 98, "src": "1624:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 84, "name": "address", "nodeType": "ElementaryTypeName", "src": "1624:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 87, "name": "data", "nodeType": "VariableDeclaration", "scope": 98, "src": "1636:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 86, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1636:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" } ], "src": "1586:61:1" }, "payable": false, "returnParameters": { "id": 89, "nodeType": "ParameterList", "parameters": [], "src": "1667:0:1" }, "scope": 963, "src": "1567:153:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 186, "nodeType": "Block", "src": "2134:1046:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 113, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 111, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 35, "src": "2276:9:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 112, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2289:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "2276:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 110, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "2268:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 114, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2268:23:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 115, "nodeType": "ExpressionStatement", "src": "2268:23:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 120, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 117, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103, "src": "2383:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 118, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 101, "src": "2397:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 119, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2397:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2383:28:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 116, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "2375:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 121, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2375:37:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 122, "nodeType": "ExpressionStatement", "src": "2375:37:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 126, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 124, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103, "src": "2482:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 125, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2496:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "2482:15:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 123, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "2474:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 127, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2474:24:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 128, "nodeType": "ExpressionStatement", "src": "2474:24:1" }, { "body": { "id": 165, "nodeType": "Block", "src": "2590:221:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 145, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 141, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 101, "src": "2657:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 143, "indexExpression": { "argumentTypes": null, "id": 142, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "2665:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2657:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 144, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2671:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "2657:15:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 140, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "2649:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 146, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2649:24:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 147, "nodeType": "ExpressionStatement", "src": "2649:24:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 154, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "2739:20:1", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 149, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "2740:7:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 153, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 150, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 101, "src": "2748:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 152, "indexExpression": { "argumentTypes": null, "id": 151, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "2756:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2748:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2740:19:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 148, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "2731:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 155, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2731:29:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 156, "nodeType": "ExpressionStatement", "src": "2731:29:1" }, { "expression": { "argumentTypes": null, "id": 163, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 157, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "2774:7:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 161, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 158, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 101, "src": "2782:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 160, "indexExpression": { "argumentTypes": null, "id": 159, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "2790:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2782:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2774:19:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 162, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "2796:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "2774:26:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 164, "nodeType": "ExpressionStatement", "src": "2774:26:1" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 136, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 133, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "2565:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 134, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 101, "src": "2569:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 135, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2569:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2565:18:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 166, "initializationExpression": { "assignments": [ 130 ], "declarations": [ { "constant": false, "id": 130, "name": "i", "nodeType": "VariableDeclaration", "scope": 187, "src": "2550:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 129, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2550:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 132, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 131, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2562:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "2550:13:1" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 138, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "2585:3:1", "subExpression": { "argumentTypes": null, "id": 137, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "2585:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 139, "nodeType": "ExpressionStatement", "src": "2585:3:1" }, "nodeType": "ForStatement", "src": "2545:266:1" }, { "expression": { "argumentTypes": null, "id": 169, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 167, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "2820:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 168, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 101, "src": "2829:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "src": "2820:16:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 170, "nodeType": "ExpressionStatement", "src": "2820:16:1" }, { "expression": { "argumentTypes": null, "id": 173, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 171, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 35, "src": "2846:9:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 172, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103, "src": "2858:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "2846:22:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "id": 174, "nodeType": "ExpressionStatement", "src": "2846:22:1" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 177, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 175, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 105, "src": "3042:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 176, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3048:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3042:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 185, "nodeType": "IfStatement", "src": "3038:135:1", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 180, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 105, "src": "3163:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 181, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 107, "src": "3167:4:1", "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": 179, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 815, "src": "3143:19:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,bytes memory) returns (bool)" } }, "id": 182, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3143:29:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 178, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "3135:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 183, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3135:38:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 184, "nodeType": "ExpressionStatement", "src": "3135:38:1" } } ] }, "id": 187, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "setup", "nodeType": "FunctionDefinition", "parameters": { "id": 108, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 101, "name": "_owners", "nodeType": "VariableDeclaration", "scope": 187, "src": "2054:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" }, "typeName": { "baseType": { "id": 99, "name": "address", "nodeType": "ElementaryTypeName", "src": "2054:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 100, "length": null, "nodeType": "ArrayTypeName", "src": "2054:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[] storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 103, "name": "_threshold", "nodeType": "VariableDeclaration", "scope": 187, "src": "2073:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 102, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "2073:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 105, "name": "to", "nodeType": "VariableDeclaration", "scope": 187, "src": "2091:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 104, "name": "address", "nodeType": "ElementaryTypeName", "src": "2091:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 107, "name": "data", "nodeType": "VariableDeclaration", "scope": 187, "src": "2103:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 106, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2103:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" } ], "src": "2053:61:1" }, "payable": false, "returnParameters": { "id": 109, "nodeType": "ParameterList", "parameters": [], "src": "2134:0:1" }, "scope": 963, "src": "2039:1141:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 206, "nodeType": "Block", "src": "3414:132:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 199, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 196, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 189, "src": "3487:11:1", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" } ], "id": 195, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3479:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 197, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3479:20:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 198, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3503:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3479:25:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 194, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "3471:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 200, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3471:34:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 201, "nodeType": "ExpressionStatement", "src": "3471:34:1" }, { "expression": { "argumentTypes": null, "id": 204, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 202, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 33, "src": "3515:10:1", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 203, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 189, "src": "3528:11:1", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" } }, "src": "3515:24:1", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" } }, "id": 205, "nodeType": "ExpressionStatement", "src": "3515:24:1" } ] }, "id": 207, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": [], "id": 192, "modifierName": { "argumentTypes": null, "id": 191, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 74, "src": "3399:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "3399:10:1" } ], "name": "changeMasterCopy", "nodeType": "FunctionDefinition", "parameters": { "id": 190, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 189, "name": "_masterCopy", "nodeType": "VariableDeclaration", "scope": 207, "src": "3352:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" }, "typeName": { "contractScope": null, "id": 188, "name": "GnosisSafe", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 963, "src": "3352:10:1", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" } }, "value": null, "visibility": "internal" } ], "src": "3351:24:1" }, "payable": false, "returnParameters": { "id": 193, "nodeType": "ParameterList", "parameters": [], "src": "3414:0:1" }, "scope": 963, "src": "3326:220:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 249, "nodeType": "Block", "src": "3875:342:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 219, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 217, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 209, "src": "3934:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 218, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3943:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3934:10:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 216, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "3926:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 220, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3926:19:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 221, "nodeType": "ExpressionStatement", "src": "3926:19:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 226, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "4003:15:1", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 223, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "4004:7:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 225, "indexExpression": { "argumentTypes": null, "id": 224, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 209, "src": "4012:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4004:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 222, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "3995:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 227, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3995:24:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 228, "nodeType": "ExpressionStatement", "src": "3995:24:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 232, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 209, "src": "4041:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "id": 229, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "4029:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 231, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4029:11:1", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) returns (uint256)" } }, "id": 233, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4029:18:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 234, "nodeType": "ExpressionStatement", "src": "4029:18:1" }, { "expression": { "argumentTypes": null, "id": 239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 235, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "4057:7:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 237, "indexExpression": { "argumentTypes": null, "id": 236, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 209, "src": "4065:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4057:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 238, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "4074:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "4057:21:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 240, "nodeType": "ExpressionStatement", "src": "4057:21:1" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 243, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 241, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 35, "src": "4146:9:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "id": 242, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 211, "src": "4159:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "4146:23:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 248, "nodeType": "IfStatement", "src": "4142:68:1", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 245, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 211, "src": "4199:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint8", "typeString": "uint8" } ], "id": 244, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 385, "src": "4183:15:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, "id": 246, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4183:27:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 247, "nodeType": "ExpressionStatement", "src": "4183:27:1" } } ] }, "id": 250, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": [], "id": 214, "modifierName": { "argumentTypes": null, "id": 213, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 74, "src": "3860:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "3860:10:1" } ], "name": "addOwner", "nodeType": "FunctionDefinition", "parameters": { "id": 212, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 209, "name": "owner", "nodeType": "VariableDeclaration", "scope": 250, "src": "3804:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 208, "name": "address", "nodeType": "ElementaryTypeName", "src": "3804:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 211, "name": "_threshold", "nodeType": "VariableDeclaration", "scope": 250, "src": "3819:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 210, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "3819:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": null, "visibility": "internal" } ], "src": "3803:33:1" }, "payable": false, "returnParameters": { "id": 215, "nodeType": "ParameterList", "parameters": [], "src": "3875:0:1" }, "scope": 963, "src": "3786:431:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 308, "nodeType": "Block", "src": "4660:487:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 267, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 265, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 262, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "4755:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 263, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4755:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 264, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4771:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "4755:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 266, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 256, "src": "4776:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "4755:31:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 261, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "4747:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 268, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4747:40:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 269, "nodeType": "ExpressionStatement", "src": "4747:40:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 271, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "4867:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 273, "indexExpression": { "argumentTypes": null, "id": 272, "name": "ownerIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 252, "src": "4874:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4867:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 274, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 254, "src": "4889:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "4867:27:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 270, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "4859:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 276, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4859:36:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 277, "nodeType": "ExpressionStatement", "src": "4859:36:1" }, { "expression": { "argumentTypes": null, "id": 282, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 278, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "4905:7:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 280, "indexExpression": { "argumentTypes": null, "id": 279, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 254, "src": "4913:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4905:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", "id": 281, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "4922:5:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "4905:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 283, "nodeType": "ExpressionStatement", "src": "4905:22:1" }, { "expression": { "argumentTypes": null, "id": 293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 284, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "4937:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 286, "indexExpression": { "argumentTypes": null, "id": 285, "name": "ownerIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 252, "src": "4944:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4937:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 287, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "4958:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 292, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 291, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 288, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "4965:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 289, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4965:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 290, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4981:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "4965:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4958:25:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "4937:46:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 294, "nodeType": "ExpressionStatement", "src": "4937:46:1" }, { "expression": { "argumentTypes": null, "id": 298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "--", "prefix": false, "src": "4993:15:1", "subExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 295, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "4993:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 297, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4993:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 299, "nodeType": "ExpressionStatement", "src": "4993:15:1" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 302, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 300, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 35, "src": "5076:9:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "id": 301, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 256, "src": "5089:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "5076:23:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 307, "nodeType": "IfStatement", "src": "5072:68:1", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 304, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 256, "src": "5129:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint8", "typeString": "uint8" } ], "id": 303, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 385, "src": "5113:15:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, "id": 305, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5113:27:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 306, "nodeType": "ExpressionStatement", "src": "5113:27:1" } } ] }, "id": 309, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": [], "id": 259, "modifierName": { "argumentTypes": null, "id": 258, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 74, "src": "4645:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "4645:10:1" } ], "name": "removeOwner", "nodeType": "FunctionDefinition", "parameters": { "id": 257, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 252, "name": "ownerIndex", "nodeType": "VariableDeclaration", "scope": 309, "src": "4569:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 251, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4569:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 254, "name": "owner", "nodeType": "VariableDeclaration", "scope": 309, "src": "4589:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 253, "name": "address", "nodeType": "ElementaryTypeName", "src": "4589:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 256, "name": "_threshold", "nodeType": "VariableDeclaration", "scope": 309, "src": "4604:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 255, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "4604:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": null, "visibility": "internal" } ], "src": "4568:53:1" }, "payable": false, "returnParameters": { "id": 260, "nodeType": "ParameterList", "parameters": [], "src": "4660:0:1" }, "scope": 963, "src": "4548:599:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 359, "nodeType": "Block", "src": "5587:383:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 323, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 321, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 315, "src": "5646:8:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 322, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5658:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "5646:13:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 320, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "5638:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 324, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5638:22:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 325, "nodeType": "ExpressionStatement", "src": "5638:22:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "5718:18:1", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 327, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "5719:7:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 329, "indexExpression": { "argumentTypes": null, "id": 328, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 315, "src": "5727:8:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5719:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 326, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "5710:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 331, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5710:27:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 332, "nodeType": "ExpressionStatement", "src": "5710:27:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 338, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 334, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "5817:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 336, "indexExpression": { "argumentTypes": null, "id": 335, "name": "oldOwnerIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 311, "src": "5824:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5817:21:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 337, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 313, "src": "5842:8:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "5817:33:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 333, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "5809:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 339, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5809:42:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 340, "nodeType": "ExpressionStatement", "src": "5809:42:1" }, { "expression": { "argumentTypes": null, "id": 345, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 341, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "5861:7:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 343, "indexExpression": { "argumentTypes": null, "id": 342, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 313, "src": "5869:8:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5861:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", "id": 344, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "5881:5:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "5861:25:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 346, "nodeType": "ExpressionStatement", "src": "5861:25:1" }, { "expression": { "argumentTypes": null, "id": 351, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 347, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "5896:7:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 349, "indexExpression": { "argumentTypes": null, "id": 348, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 315, "src": "5904:8:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5896:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 350, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "5917:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "5896:25:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 352, "nodeType": "ExpressionStatement", "src": "5896:25:1" }, { "expression": { "argumentTypes": null, "id": 357, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 353, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "5931:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 355, "indexExpression": { "argumentTypes": null, "id": 354, "name": "oldOwnerIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 311, "src": "5938:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5931:21:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 356, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 315, "src": "5955:8:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "5931:32:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 358, "nodeType": "ExpressionStatement", "src": "5931:32:1" } ] }, "id": 360, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": [], "id": 318, "modifierName": { "argumentTypes": null, "id": 317, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 74, "src": "5572:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "5572:10:1" } ], "name": "replaceOwner", "nodeType": "FunctionDefinition", "parameters": { "id": 316, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 311, "name": "oldOwnerIndex", "nodeType": "VariableDeclaration", "scope": 360, "src": "5490:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 310, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5490:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 313, "name": "oldOwner", "nodeType": "VariableDeclaration", "scope": 360, "src": "5513:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 312, "name": "address", "nodeType": "ElementaryTypeName", "src": "5513:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 315, "name": "newOwner", "nodeType": "VariableDeclaration", "scope": 360, "src": "5531:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 314, "name": "address", "nodeType": "ElementaryTypeName", "src": "5531:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "5489:59:1" }, "payable": false, "returnParameters": { "id": 319, "nodeType": "ParameterList", "parameters": [], "src": "5587:0:1" }, "scope": 963, "src": "5468:502:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 384, "nodeType": "Block", "src": "6240:239:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 371, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 368, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 362, "src": "6326:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 369, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "6340:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 370, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6340:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6326:27:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 367, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "6318:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 372, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6318:36:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 373, "nodeType": "ExpressionStatement", "src": "6318:36:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 377, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 375, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 362, "src": "6424:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 376, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6438:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "6424:15:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 374, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "6416:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 378, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6416:24:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 379, "nodeType": "ExpressionStatement", "src": "6416:24:1" }, { "expression": { "argumentTypes": null, "id": 382, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 380, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 35, "src": "6450:9:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 381, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 362, "src": "6462:10:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "6450:22:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "id": 383, "nodeType": "ExpressionStatement", "src": "6450:22:1" } ] }, "id": 385, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": [], "id": 365, "modifierName": { "argumentTypes": null, "id": 364, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 74, "src": "6225:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "6225:10:1" } ], "name": "changeThreshold", "nodeType": "FunctionDefinition", "parameters": { "id": 363, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 362, "name": "_threshold", "nodeType": "VariableDeclaration", "scope": 385, "src": "6184:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 361, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "6184:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": null, "visibility": "internal" } ], "src": "6183:18:1" }, "payable": false, "returnParameters": { "id": 366, "nodeType": "ParameterList", "parameters": [], "src": "6240:0:1" }, "scope": 963, "src": "6159:320:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 419, "nodeType": "Block", "src": "6737:255:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 397, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 394, "name": "extension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 387, "src": "6808:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } ], "id": 393, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "6800:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 395, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6800:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 396, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6822:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "6800:23:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 392, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "6792:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 398, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6792:32:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 399, "nodeType": "ExpressionStatement", "src": "6792:32:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 404, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "6886:23:1", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 401, "name": "isExtension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51, "src": "6887:11:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 403, "indexExpression": { "argumentTypes": null, "id": 402, "name": "extension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 387, "src": "6899:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6887:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 400, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "6878:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 405, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6878:32:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 406, "nodeType": "ExpressionStatement", "src": "6878:32:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 410, "name": "extension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 387, "src": "6936:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } ], "expression": { "argumentTypes": null, "id": 407, "name": "extensions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, "src": "6920:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_storage", "typeString": "contract Extension[] storage ref" } }, "id": 409, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6920:15:1", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_Extension_$18_$returns$_t_uint256_$", "typeString": "function (contract Extension) returns (uint256)" } }, "id": 411, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6920:26:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 412, "nodeType": "ExpressionStatement", "src": "6920:26:1" }, { "expression": { "argumentTypes": null, "id": 417, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 413, "name": "isExtension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51, "src": "6956:11:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 415, "indexExpression": { "argumentTypes": null, "id": 414, "name": "extension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 387, "src": "6968:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6956:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 416, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "6981:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "6956:29:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 418, "nodeType": "ExpressionStatement", "src": "6956:29:1" } ] }, "id": 420, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": [], "id": 390, "modifierName": { "argumentTypes": null, "id": 389, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 74, "src": "6722:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "6722:10:1" } ], "name": "addExtension", "nodeType": "FunctionDefinition", "parameters": { "id": 388, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 387, "name": "extension", "nodeType": "VariableDeclaration", "scope": 420, "src": "6678:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" }, "typeName": { "contractScope": null, "id": 386, "name": "Extension", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 18, "src": "6678:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "value": null, "visibility": "internal" } ], "src": "6677:21:1" }, "payable": false, "returnParameters": { "id": 391, "nodeType": "ParameterList", "parameters": [], "src": "6737:0:1" }, "scope": 963, "src": "6656:336:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 459, "nodeType": "Block", "src": "7372:276:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" }, "id": 434, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 430, "name": "extensions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, "src": "7460:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_storage", "typeString": "contract Extension[] storage ref" } }, "id": 432, "indexExpression": { "argumentTypes": null, "id": 431, "name": "extensionIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 422, "src": "7471:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7460:26:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 433, "name": "extension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 424, "src": "7490:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "src": "7460:39:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 429, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "7452:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 435, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7452:48:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 436, "nodeType": "ExpressionStatement", "src": "7452:48:1" }, { "expression": { "argumentTypes": null, "id": 441, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 437, "name": "isExtension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51, "src": "7510:11:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 439, "indexExpression": { "argumentTypes": null, "id": 438, "name": "extension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 424, "src": "7522:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "7510:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", "id": 440, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "7535:5:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "7510:30:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 442, "nodeType": "ExpressionStatement", "src": "7510:30:1" }, { "expression": { "argumentTypes": null, "id": 452, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 443, "name": "extensions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, "src": "7550:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_storage", "typeString": "contract Extension[] storage ref" } }, "id": 445, "indexExpression": { "argumentTypes": null, "id": 444, "name": "extensionIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 422, "src": "7561:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "7550:26:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 446, "name": "extensions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, "src": "7579:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_storage", "typeString": "contract Extension[] storage ref" } }, "id": 451, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 450, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 447, "name": "extensions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, "src": "7590:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_storage", "typeString": "contract Extension[] storage ref" } }, "id": 448, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7590:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 449, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7610:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "7590:21:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7579:33:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "src": "7550:62:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "id": 453, "nodeType": "ExpressionStatement", "src": "7550:62:1" }, { "expression": { "argumentTypes": null, "id": 457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "--", "prefix": false, "src": "7622:19:1", "subExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 454, "name": "extensions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, "src": "7622:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_storage", "typeString": "contract Extension[] storage ref" } }, "id": 456, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7622:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 458, "nodeType": "ExpressionStatement", "src": "7622:19:1" } ] }, "id": 460, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": [], "id": 427, "modifierName": { "argumentTypes": null, "id": 426, "name": "onlyWallet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 74, "src": "7357:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "7357:10:1" } ], "name": "removeExtension", "nodeType": "FunctionDefinition", "parameters": { "id": 425, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 422, "name": "extensionIndex", "nodeType": "VariableDeclaration", "scope": 460, "src": "7289:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 421, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7289:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 424, "name": "extension", "nodeType": "VariableDeclaration", "scope": 460, "src": "7313:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" }, "typeName": { "contractScope": null, "id": 423, "name": "Extension", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 18, "src": "7313:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "value": null, "visibility": "internal" } ], "src": "7288:45:1" }, "payable": false, "returnParameters": { "id": 428, "nodeType": "ParameterList", "parameters": [], "src": "7372:0:1" }, "scope": 963, "src": "7264:384:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 509, "nodeType": "Block", "src": "8102:383:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 474, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "8190:7:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 477, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 475, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2089, "src": "8198:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 476, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8198:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8190:19:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 473, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "8182:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 478, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8182:28:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 479, "nodeType": "ExpressionStatement", "src": "8182:28:1" }, { "assignments": [ 481 ], "declarations": [ { "constant": false, "id": 481, "name": "transactionHash", "nodeType": "VariableDeclaration", "scope": 510, "src": "8220:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 480, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "8220:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "id": 489, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 483, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 462, "src": "8265:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 484, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 464, "src": "8269:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 485, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 466, "src": "8276:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "argumentTypes": null, "id": 486, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 468, "src": "8282:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, { "argumentTypes": null, "id": 487, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 37, "src": "8293:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 482, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 852, "src": "8246:18:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$61_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (address,uint256,bytes memory,enum GnosisSafe.Operation,uint256) view returns (bytes32)" } }, "id": 488, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8246:53:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", "src": "8220:79:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 497, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "8379:41:1", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 491, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 57, "src": "8380:11:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", "typeString": "mapping(address => mapping(bytes32 => bool))" } }, "id": 494, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 492, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2089, "src": "8392:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 493, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8392:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8380:23:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, "id": 496, "indexExpression": { "argumentTypes": null, "id": 495, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 481, "src": "8404:15:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8380:40:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 490, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "8371:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 498, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8371:50:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 499, "nodeType": "ExpressionStatement", "src": "8371:50:1" }, { "expression": { "argumentTypes": null, "id": 507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 500, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 57, "src": "8431:11:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", "typeString": "mapping(address => mapping(bytes32 => bool))" } }, "id": 504, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 501, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2089, "src": "8443:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8443:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8431:23:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, "id": 505, "indexExpression": { "argumentTypes": null, "id": 503, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 481, "src": "8455:15:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "8431:40:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 506, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "8474:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "8431:47:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 508, "nodeType": "ExpressionStatement", "src": "8431:47:1" } ] }, "id": 510, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "confirmTransaction", "nodeType": "FunctionDefinition", "parameters": { "id": 471, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 462, "name": "to", "nodeType": "VariableDeclaration", "scope": 510, "src": "8007:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 461, "name": "address", "nodeType": "ElementaryTypeName", "src": "8007:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 464, "name": "value", "nodeType": "VariableDeclaration", "scope": 510, "src": "8019:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 463, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8019:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 466, "name": "data", "nodeType": "VariableDeclaration", "scope": 510, "src": "8034:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 465, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8034:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 468, "name": "operation", "nodeType": "VariableDeclaration", "scope": 510, "src": "8046:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, "typeName": { "contractScope": null, "id": 467, "name": "Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 61, "src": "8046:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 470, "name": "_nonce", "nodeType": "VariableDeclaration", "scope": 510, "src": "8067:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 469, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8067:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "8006:76:1" }, "payable": false, "returnParameters": { "id": 472, "nodeType": "ParameterList", "parameters": [], "src": "8102:0:1" }, "scope": 963, "src": "7979:506:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 697, "nodeType": "Block", "src": "9404:1349:1", "statements": [ { "assignments": [ 537 ], "declarations": [ { "constant": false, "id": 537, "name": "transactionHash", "nodeType": "VariableDeclaration", "scope": 698, "src": "9414:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 536, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "9414:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "id": 545, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 539, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 512, "src": "9459:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 540, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 514, "src": "9463:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 541, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 516, "src": "9470:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "argumentTypes": null, "id": 542, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 518, "src": "9476:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, { "argumentTypes": null, "id": 543, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 37, "src": "9487:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 538, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 852, "src": "9440:18:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$61_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (address,uint256,bytes memory,enum GnosisSafe.Operation,uint256) view returns (bytes32)" } }, "id": 544, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9440:53:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", "src": "9414:79:1" }, { "assignments": [ 547 ], "declarations": [ { "constant": false, "id": 547, "name": "lastOwner", "nodeType": "VariableDeclaration", "scope": 698, "src": "9555:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 546, "name": "address", "nodeType": "ElementaryTypeName", "src": "9555:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "id": 551, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 549, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9583: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": 548, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9575:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 550, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9575:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "9555:30:1" }, { "assignments": [], "declarations": [ { "constant": false, "id": 553, "name": "currentOwner", "nodeType": "VariableDeclaration", "scope": 698, "src": "9595:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 552, "name": "address", "nodeType": "ElementaryTypeName", "src": "9595:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "id": 554, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "9595:20:1" }, { "assignments": [], "declarations": [ { "constant": false, "id": 556, "name": "i", "nodeType": "VariableDeclaration", "scope": 698, "src": "9625:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 555, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9625:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 557, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "9625:9:1" }, { "assignments": [ 559 ], "declarations": [ { "constant": false, "id": 559, "name": "j", "nodeType": "VariableDeclaration", "scope": 698, "src": "9644:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 558, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9644:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 561, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 560, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9656:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "9644:13:1" }, { "body": { "id": 648, "nodeType": "Block", "src": "9741:619:1", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 581, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 575, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 572, "name": "indices", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 533, "src": "9843:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, "id": 573, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9843:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "id": 574, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 559, "src": "9860:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9843:18:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 580, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 576, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "9865:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 577, "name": "indices", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 533, "src": "9870:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, "id": 579, "indexExpression": { "argumentTypes": null, "id": 578, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 559, "src": "9878:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9870:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9865:15:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "9843:37:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "expression": { "argumentTypes": null, "id": 629, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 610, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "10155:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 612, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 537, "src": "10180:15:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 613, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 521, "src": "10197:1:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", "typeString": "uint8[] memory" } }, "id": 617, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 616, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 614, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "10199:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 615, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 559, "src": "10201:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10199:3:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10197:6:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 618, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 524, "src": "10205:1:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, "id": 622, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 621, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 619, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "10207:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 620, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 559, "src": "10209:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10207:3:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10205:6:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 623, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 527, "src": "10213:1:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, "id": 627, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 626, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 624, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "10215:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 625, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 559, "src": "10217:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10215:3:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10213:6: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": 611, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2082, "src": "10170: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": 628, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10170:50:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "10155:65:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 630, "nodeType": "ExpressionStatement", "src": "10155:65:1" }, "id": 631, "nodeType": "IfStatement", "src": "9839:381:1", "trueBody": { "id": 609, "nodeType": "Block", "src": "9882:177:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 596, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 588, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 583, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2089, "src": "9908:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 584, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9908:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 585, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 530, "src": "9922:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 587, "indexExpression": { "argumentTypes": null, "id": 586, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 559, "src": "9930:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9922:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "9908:24:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 589, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 57, "src": "9936:11:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", "typeString": "mapping(address => mapping(bytes32 => bool))" } }, "id": 593, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 590, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 530, "src": "9948:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 592, "indexExpression": { "argumentTypes": null, "id": 591, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 559, "src": "9956:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9948:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9936:23:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, "id": 595, "indexExpression": { "argumentTypes": null, "id": 594, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 537, "src": "9960:15:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9936:40:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "9908:68:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 582, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "9900:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 597, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9900:77:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 598, "nodeType": "ExpressionStatement", "src": "9900:77:1" }, { "expression": { "argumentTypes": null, "id": 603, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 599, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "9995:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 600, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 530, "src": "10010:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 602, "indexExpression": { "argumentTypes": null, "id": 601, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 559, "src": "10018:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10010:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "9995:25:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 604, "nodeType": "ExpressionStatement", "src": "9995:25:1" }, { "expression": { "argumentTypes": null, "id": 607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 605, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 559, "src": "10038:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "hexValue": "31", "id": 606, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10043:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "10038:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 608, "nodeType": "ExpressionStatement", "src": "10038:6:1" } ] } }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 633, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "10242:7:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 635, "indexExpression": { "argumentTypes": null, "id": 634, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "10250:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10242:21:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 632, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "10234:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 636, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10234:30:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 637, "nodeType": "ExpressionStatement", "src": "10234:30:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 641, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 639, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "10286:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "id": 640, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 547, "src": "10301:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "10286:24:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 638, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "10278:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 642, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10278:33:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 643, "nodeType": "ExpressionStatement", "src": "10278:33:1" }, { "expression": { "argumentTypes": null, "id": 646, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 644, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 547, "src": "10325:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 645, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "10337:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "10325:24:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 647, "nodeType": "ExpressionStatement", "src": "10325:24:1" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 568, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 566, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "9721:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 567, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 35, "src": "9725:9:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "9721:13:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 649, "initializationExpression": { "expression": { "argumentTypes": null, "id": 564, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 562, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "9714:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 563, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9718:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "9714:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 565, "nodeType": "ExpressionStatement", "src": "9714:5:1" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 570, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "9736:3:1", "subExpression": { "argumentTypes": null, "id": 569, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "9736:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 571, "nodeType": "ExpressionStatement", "src": "9736:3:1" }, "nodeType": "ForStatement", "src": "9709:651:1" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 653, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 650, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 530, "src": "10419:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 651, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10419:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 652, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10436:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "10419:18:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 685, "nodeType": "IfStatement", "src": "10415:216:1", "trueBody": { "id": 684, "nodeType": "Block", "src": "10439:192:1", "statements": [ { "body": { "id": 682, "nodeType": "Block", "src": "10490:131:1", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 670, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 665, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2089, "src": "10512:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 666, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10512:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 667, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 530, "src": "10526:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 669, "indexExpression": { "argumentTypes": null, "id": 668, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "10534:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10526:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "10512:24:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 681, "nodeType": "IfStatement", "src": "10508:98:1", "trueBody": { "expression": { "argumentTypes": null, "id": 679, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 671, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 57, "src": "10558:11:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", "typeString": "mapping(address => mapping(bytes32 => bool))" } }, "id": 676, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 672, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 530, "src": "10570:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 674, "indexExpression": { "argumentTypes": null, "id": 673, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "10578:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10570:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10558:23:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, "id": 677, "indexExpression": { "argumentTypes": null, "id": 675, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 537, "src": "10582:15:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "10558:40:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", "id": 678, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "10601:5:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "10558:48:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 680, "nodeType": "ExpressionStatement", "src": "10558:48:1" } } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 661, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 658, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "10465:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 659, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 530, "src": "10469:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 660, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10469:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10465:18:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 683, "initializationExpression": { "expression": { "argumentTypes": null, "id": 656, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 654, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "10458:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 655, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10462:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "10458:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 657, "nodeType": "ExpressionStatement", "src": "10458:5:1" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 663, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "10485:3:1", "subExpression": { "argumentTypes": null, "id": 662, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 556, "src": "10485:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 664, "nodeType": "ExpressionStatement", "src": "10485:3:1" }, "nodeType": "ForStatement", "src": "10453:168:1" } ] } }, { "expression": { "argumentTypes": null, "id": 688, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 686, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 37, "src": "10691:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "hexValue": "31", "id": 687, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10700:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "10691:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 689, "nodeType": "ExpressionStatement", "src": "10691:10:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 691, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 512, "src": "10719:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 692, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 514, "src": "10723:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 693, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 516, "src": "10730:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "argumentTypes": null, "id": 694, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 518, "src": "10736:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } ], "id": 690, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 791, "src": "10711:7:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$61_$returns$__$", "typeString": "function (address,uint256,bytes memory,enum GnosisSafe.Operation)" } }, "id": 695, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10711:35:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 696, "nodeType": "ExpressionStatement", "src": "10711:35:1" } ] }, "id": 698, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "executeTransaction", "nodeType": "FunctionDefinition", "parameters": { "id": 534, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 512, "name": "to", "nodeType": "VariableDeclaration", "scope": 698, "src": "9250:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 511, "name": "address", "nodeType": "ElementaryTypeName", "src": "9250:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 514, "name": "value", "nodeType": "VariableDeclaration", "scope": 698, "src": "9262:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 513, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9262:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 516, "name": "data", "nodeType": "VariableDeclaration", "scope": 698, "src": "9277:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 515, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "9277:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 518, "name": "operation", "nodeType": "VariableDeclaration", "scope": 698, "src": "9289:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, "typeName": { "contractScope": null, "id": 517, "name": "Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 61, "src": "9289:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 521, "name": "v", "nodeType": "VariableDeclaration", "scope": 698, "src": "9310:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", "typeString": "uint8[] memory" }, "typeName": { "baseType": { "id": 519, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "9310:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "id": 520, "length": null, "nodeType": "ArrayTypeName", "src": "9310:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", "typeString": "uint8[] storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 524, "name": "r", "nodeType": "VariableDeclaration", "scope": 698, "src": "9321:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" }, "typeName": { "baseType": { "id": 522, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "9321:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 523, "length": null, "nodeType": "ArrayTypeName", "src": "9321:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[] storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 527, "name": "s", "nodeType": "VariableDeclaration", "scope": 698, "src": "9334:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" }, "typeName": { "baseType": { "id": 525, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "9334:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 526, "length": null, "nodeType": "ArrayTypeName", "src": "9334:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[] storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 530, "name": "_owners", "nodeType": "VariableDeclaration", "scope": 698, "src": "9347:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" }, "typeName": { "baseType": { "id": 528, "name": "address", "nodeType": "ElementaryTypeName", "src": "9347:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 529, "length": null, "nodeType": "ArrayTypeName", "src": "9347:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[] storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 533, "name": "indices", "nodeType": "VariableDeclaration", "scope": 698, "src": "9366:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" }, "typeName": { "baseType": { "id": 531, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9366:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 532, "length": null, "nodeType": "ArrayTypeName", "src": "9366:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[] storage pointer" } }, "value": null, "visibility": "internal" } ], "src": "9249:135:1" }, "payable": false, "returnParameters": { "id": 535, "nodeType": "ParameterList", "parameters": [], "src": "9404:0:1" }, "scope": 963, "src": "9222:1531:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 736, "nodeType": "Block", "src": "11304:338:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 712, "name": "isExtension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51, "src": "11374:11:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 714, "indexExpression": { "argumentTypes": null, "id": 713, "name": "extension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 708, "src": "11386:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11374:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 711, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "11366:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 715, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11366:31:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 716, "nodeType": "ExpressionStatement", "src": "11366:31:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 720, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2089, "src": "11487:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 721, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11487:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 722, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 700, "src": "11499:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 723, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 702, "src": "11503:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 724, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 704, "src": "11510:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "argumentTypes": null, "id": 725, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 706, "src": "11516:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } ], "expression": { "argumentTypes": null, "id": 718, "name": "extension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 708, "src": "11464:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "id": 719, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isExecutable", "nodeType": "MemberAccess", "referencedDeclaration": 17, "src": "11464:22:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$61_$returns$_t_bool_$", "typeString": "function (address,address,uint256,bytes memory,enum GnosisSafe.Operation) external returns (bool)" } }, "id": 726, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11464:62:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 717, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "11456:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 727, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11456:71:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 728, "nodeType": "ExpressionStatement", "src": "11456:71:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 730, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 700, "src": "11608:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 731, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 702, "src": "11612:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 732, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 704, "src": "11619:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "argumentTypes": null, "id": 733, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 706, "src": "11625:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } ], "id": 729, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 791, "src": "11600:7:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$61_$returns$__$", "typeString": "function (address,uint256,bytes memory,enum GnosisSafe.Operation)" } }, "id": 734, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11600:35:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 735, "nodeType": "ExpressionStatement", "src": "11600:35:1" } ] }, "id": 737, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "executeExtension", "nodeType": "FunctionDefinition", "parameters": { "id": 709, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 700, "name": "to", "nodeType": "VariableDeclaration", "scope": 737, "src": "11204:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 699, "name": "address", "nodeType": "ElementaryTypeName", "src": "11204:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 702, "name": "value", "nodeType": "VariableDeclaration", "scope": 737, "src": "11216:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 701, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11216:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 704, "name": "data", "nodeType": "VariableDeclaration", "scope": 737, "src": "11231:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 703, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "11231:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 706, "name": "operation", "nodeType": "VariableDeclaration", "scope": 737, "src": "11243:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, "typeName": { "contractScope": null, "id": 705, "name": "Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 61, "src": "11243:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 708, "name": "extension", "nodeType": "VariableDeclaration", "scope": 737, "src": "11264:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" }, "typeName": { "contractScope": null, "id": 707, "name": "Extension", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 18, "src": "11264:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "value": null, "visibility": "internal" } ], "src": "11203:81:1" }, "payable": false, "returnParameters": { "id": 710, "nodeType": "ParameterList", "parameters": [], "src": "11304:0:1" }, "scope": 963, "src": "11178:464:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 790, "nodeType": "Block", "src": "11746:367:1", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, "id": 751, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 748, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 745, "src": "11760:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 749, "name": "Operation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 61, "src": "11773:9:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_Operation_$61_$", "typeString": "type(enum GnosisSafe.Operation)" } }, "id": 750, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11773:14:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, "src": "11760:27:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, "id": 763, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 760, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 745, "src": "11857:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 761, "name": "Operation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 61, "src": "11870:9:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_Operation_$61_$", "typeString": "type(enum GnosisSafe.Operation)" } }, "id": 762, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "DelegateCall", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11870:22:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, "src": "11857:35:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 787, "nodeType": "Block", "src": "11959:148:1", "statements": [ { "assignments": [ 772 ], "declarations": [ { "constant": false, "id": 772, "name": "newContract", "nodeType": "VariableDeclaration", "scope": 791, "src": "11973:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 771, "name": "address", "nodeType": "ElementaryTypeName", "src": "11973:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "id": 776, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 774, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 743, "src": "12009:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 773, "name": "executeCreate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 824, "src": "11995:13:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", "typeString": "function (bytes memory) returns (address)" } }, "id": 775, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11995:19:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "11973:41:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 778, "name": "newContract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 772, "src": "12036:11:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 779, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12051:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "12036:16:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 777, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "12028:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 781, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12028:25:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 782, "nodeType": "ExpressionStatement", "src": "12028:25:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 784, "name": "newContract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 772, "src": "12084:11:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 783, "name": "ContractCreation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25, "src": "12067:16:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 785, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12067:29:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 786, "nodeType": "ExpressionStatement", "src": "12067:29:1" } ] }, "id": 788, "nodeType": "IfStatement", "src": "11853:254:1", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 766, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 739, "src": "11934:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 767, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 743, "src": "11938:4:1", "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": 765, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 815, "src": "11914:19:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,bytes memory) returns (bool)" } }, "id": 768, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11914:29:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 764, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "11906:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 769, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11906:38:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 770, "nodeType": "ExpressionStatement", "src": "11906:38:1" } }, "id": 789, "nodeType": "IfStatement", "src": "11756:351:1", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 754, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 739, "src": "11821:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 755, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 741, "src": "11825:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 756, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 743, "src": "11832:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 753, "name": "executeCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 804, "src": "11809:11:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory) returns (bool)" } }, "id": 757, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11809:28:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 752, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2092, "src": "11801:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 758, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11801:37:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 759, "nodeType": "ExpressionStatement", "src": "11801:37:1" } } ] }, "id": 791, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "execute", "nodeType": "FunctionDefinition", "parameters": { "id": 746, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 739, "name": "to", "nodeType": "VariableDeclaration", "scope": 791, "src": "11665:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 738, "name": "address", "nodeType": "ElementaryTypeName", "src": "11665:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 741, "name": "value", "nodeType": "VariableDeclaration", "scope": 791, "src": "11677:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 740, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11677:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 743, "name": "data", "nodeType": "VariableDeclaration", "scope": 791, "src": "11692:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 742, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "11692:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 745, "name": "operation", "nodeType": "VariableDeclaration", "scope": 791, "src": "11704:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, "typeName": { "contractScope": null, "id": 744, "name": "Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 61, "src": "11704:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, "value": null, "visibility": "internal" } ], "src": "11664:60:1" }, "payable": false, "returnParameters": { "id": 747, "nodeType": "ParameterList", "parameters": [], "src": "11746:0:1" }, "scope": 963, "src": "11648:465:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 803, "nodeType": "Block", "src": "12231:119:1", "statements": [ { "externalReferences": [ { "data": { "declaration": 797, "isOffset": false, "isSlot": false, "src": "12303:4:1", "valueSize": 1 } }, { "data": { "declaration": 797, "isOffset": false, "isSlot": false, "src": "12322:4:1", "valueSize": 1 } }, { "success": { "declaration": 800, "isOffset": false, "isSlot": false, "src": "12264:7:1", "valueSize": 1 } }, { "to": { "declaration": 793, "isOffset": false, "isSlot": false, "src": "12288:2:1", "valueSize": 1 } }, { "value": { "declaration": 795, "isOffset": false, "isSlot": false, "src": "12292:5:1", "valueSize": 1 } } ], "id": 802, "nodeType": "InlineAssembly", "operations": "{\n success := call(not(0), to, value, add(data, 0x20), mload(data), 0, 0)\n}", "src": "12241:109:1" } ] }, "id": 804, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "executeCall", "nodeType": "FunctionDefinition", "parameters": { "id": 798, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 793, "name": "to", "nodeType": "VariableDeclaration", "scope": 804, "src": "12140:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 792, "name": "address", "nodeType": "ElementaryTypeName", "src": "12140:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 795, "name": "value", "nodeType": "VariableDeclaration", "scope": 804, "src": "12152:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 794, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12152:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 797, "name": "data", "nodeType": "VariableDeclaration", "scope": 804, "src": "12167:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 796, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "12167:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" } ], "src": "12139:39:1" }, "payable": false, "returnParameters": { "id": 801, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 800, "name": "success", "nodeType": "VariableDeclaration", "scope": 804, "src": "12213:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 799, "name": "bool", "nodeType": "ElementaryTypeName", "src": "12213:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "12212:14:1" }, "scope": 963, "src": "12119:231:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 814, "nodeType": "Block", "src": "12461:120:1", "statements": [ { "externalReferences": [ { "data": { "declaration": 808, "isOffset": false, "isSlot": false, "src": "12534:4:1", "valueSize": 1 } }, { "data": { "declaration": 808, "isOffset": false, "isSlot": false, "src": "12553:4:1", "valueSize": 1 } }, { "success": { "declaration": 811, "isOffset": false, "isSlot": false, "src": "12494:7:1", "valueSize": 1 } }, { "to": { "declaration": 806, "isOffset": false, "isSlot": false, "src": "12526:2:1", "valueSize": 1 } } ], "id": 813, "nodeType": "InlineAssembly", "operations": "{\n success := delegatecall(not(0), to, add(data, 0x20), mload(data), 0, 0)\n}", "src": "12471:110:1" } ] }, "id": 815, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "executeDelegateCall", "nodeType": "FunctionDefinition", "parameters": { "id": 809, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 806, "name": "to", "nodeType": "VariableDeclaration", "scope": 815, "src": "12385:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 805, "name": "address", "nodeType": "ElementaryTypeName", "src": "12385:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 808, "name": "data", "nodeType": "VariableDeclaration", "scope": 815, "src": "12397:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 807, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "12397:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" } ], "src": "12384:24:1" }, "payable": false, "returnParameters": { "id": 812, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 811, "name": "success", "nodeType": "VariableDeclaration", "scope": 815, "src": "12443:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 810, "name": "bool", "nodeType": "ElementaryTypeName", "src": "12443:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "12442:14:1" }, "scope": 963, "src": "12356:225:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 823, "nodeType": "Block", "src": "12681:103:1", "statements": [ { "externalReferences": [ { "data": { "declaration": 817, "isOffset": false, "isSlot": false, "src": "12762:4:1", "valueSize": 1 } }, { "newContract": { "declaration": 820, "isOffset": false, "isSlot": false, "src": "12714:11:1", "valueSize": 1 } }, { "data": { "declaration": 817, "isOffset": false, "isSlot": false, "src": "12743:4:1", "valueSize": 1 } } ], "id": 822, "nodeType": "InlineAssembly", "operations": "{\n newContract := create(0, add(data, 0x20), mload(data))\n}", "src": "12691:93:1" } ] }, "id": 824, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "executeCreate", "nodeType": "FunctionDefinition", "parameters": { "id": 818, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 817, "name": "data", "nodeType": "VariableDeclaration", "scope": 824, "src": "12610:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 816, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "12610:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" } ], "src": "12609:12:1" }, "payable": false, "returnParameters": { "id": 821, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 820, "name": "newContract", "nodeType": "VariableDeclaration", "scope": 824, "src": "12656:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 819, "name": "address", "nodeType": "ElementaryTypeName", "src": "12656:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "12655:21:1" }, "scope": 963, "src": "12587:197:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 851, "nodeType": "Block", "src": "13238:87:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30783139", "id": 841, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13270:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", "typeString": "int_const 25" }, "value": "0x19" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_25_by_1", "typeString": "int_const 25" } ], "id": 840, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "13265:4:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, "id": 842, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13265:10:1", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, { "argumentTypes": null, "id": 843, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2100, "src": "13277:4:1", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" } }, { "argumentTypes": null, "id": 844, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 826, "src": "13283:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 845, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 828, "src": "13287:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 846, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 830, "src": "13294:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "argumentTypes": null, "id": 847, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 832, "src": "13300:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, { "argumentTypes": null, "id": 848, "name": "_nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 834, "src": "13311:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, { "typeIdentifier": "t_contract$_GnosisSafe_$963", "typeString": "contract GnosisSafe" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 839, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2083, "src": "13255:9:1", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, "id": 849, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13255:63:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "functionReturnParameters": 838, "id": 850, "nodeType": "Return", "src": "13248:70:1" } ] }, "id": 852, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { "id": 835, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 826, "name": "to", "nodeType": "VariableDeclaration", "scope": 852, "src": "13104:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 825, "name": "address", "nodeType": "ElementaryTypeName", "src": "13104:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 828, "name": "value", "nodeType": "VariableDeclaration", "scope": 852, "src": "13116:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 827, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "13116:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 830, "name": "data", "nodeType": "VariableDeclaration", "scope": 852, "src": "13131:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 829, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "13131:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 832, "name": "operation", "nodeType": "VariableDeclaration", "scope": 852, "src": "13143:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, "typeName": { "contractScope": null, "id": 831, "name": "Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 61, "src": "13143:9:1", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 834, "name": "_nonce", "nodeType": "VariableDeclaration", "scope": 852, "src": "13164:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 833, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "13164:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "13103:76:1" }, "payable": false, "returnParameters": { "id": 838, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 837, "name": "", "nodeType": "VariableDeclaration", "scope": 852, "src": "13225:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 836, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "13225:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "src": "13224:9:1" }, "scope": 963, "src": "13076:249:1", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 860, "nodeType": "Block", "src": "13488:30:1", "statements": [ { "expression": { "argumentTypes": null, "id": 858, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "13505:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "functionReturnParameters": 857, "id": 859, "nodeType": "Return", "src": "13498:13:1" } ] }, "id": 861, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "getOwners", "nodeType": "FunctionDefinition", "parameters": { "id": 853, "nodeType": "ParameterList", "parameters": [], "src": "13425:2:1" }, "payable": false, "returnParameters": { "id": 857, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 856, "name": "", "nodeType": "VariableDeclaration", "scope": 861, "src": "13473:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" }, "typeName": { "baseType": { "id": 854, "name": "address", "nodeType": "ElementaryTypeName", "src": "13473:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 855, "length": null, "nodeType": "ArrayTypeName", "src": "13473:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[] storage pointer" } }, "value": null, "visibility": "internal" } ], "src": "13472:11:1" }, "scope": 963, "src": "13407:111:1", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 869, "nodeType": "Block", "src": "13690:34:1", "statements": [ { "expression": { "argumentTypes": null, "id": 867, "name": "extensions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, "src": "13707:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_storage", "typeString": "contract Extension[] storage ref" } }, "functionReturnParameters": 866, "id": 868, "nodeType": "Return", "src": "13700:17:1" } ] }, "id": 870, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "getExtensions", "nodeType": "FunctionDefinition", "parameters": { "id": 862, "nodeType": "ParameterList", "parameters": [], "src": "13625:2:1" }, "payable": false, "returnParameters": { "id": 866, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 865, "name": "", "nodeType": "VariableDeclaration", "scope": 870, "src": "13673:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_memory_ptr", "typeString": "contract Extension[] memory" }, "typeName": { "baseType": { "contractScope": null, "id": 863, "name": "Extension", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 18, "src": "13673:9:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Extension_$18", "typeString": "contract Extension" } }, "id": 864, "length": null, "nodeType": "ArrayTypeName", "src": "13673:11:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_contract$_Extension_$18_$dyn_storage_ptr", "typeString": "contract Extension[] storage pointer" } }, "value": null, "visibility": "internal" } ], "src": "13672:13:1" }, "scope": 963, "src": "13603:121:1", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 901, "nodeType": "Block", "src": "13998:162:1", "statements": [ { "body": { "id": 899, "nodeType": "Block", "src": "14049:105:1", "statements": [ { "condition": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 888, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 57, "src": "14067:11:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", "typeString": "mapping(address => mapping(bytes32 => bool))" } }, "id": 892, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 889, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "14079:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 891, "indexExpression": { "argumentTypes": null, "id": 890, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 878, "src": "14086:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14079:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14067:22:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, "id": 894, "indexExpression": { "argumentTypes": null, "id": 893, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 872, "src": "14090:15:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14067:39:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 898, "nodeType": "IfStatement", "src": "14063:80:1", "trueBody": { "expression": { "argumentTypes": null, "id": 896, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "14124:19:1", "subExpression": { "argumentTypes": null, "id": 895, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 875, "src": "14124:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 897, "nodeType": "ExpressionStatement", "src": "14124:19:1" } } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 884, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 881, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 878, "src": "14025:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 882, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "14029:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 883, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "14029:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "14025:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 900, "initializationExpression": { "assignments": [ 878 ], "declarations": [ { "constant": false, "id": 878, "name": "i", "nodeType": "VariableDeclaration", "scope": 902, "src": "14013:6:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 877, "name": "uint", "nodeType": "ElementaryTypeName", "src": "14013:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 880, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 879, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "14022:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "14013:10:1" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 886, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "14044:3:1", "subExpression": { "argumentTypes": null, "id": 885, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 878, "src": "14044:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 887, "nodeType": "ExpressionStatement", "src": "14044:3:1" }, "nodeType": "ForStatement", "src": "14008:146:1" } ] }, "id": 902, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "getConfirmationCount", "nodeType": "FunctionDefinition", "parameters": { "id": 873, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 872, "name": "transactionHash", "nodeType": "VariableDeclaration", "scope": 902, "src": "13900:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 871, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "13900:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "src": "13899:25:1" }, "payable": false, "returnParameters": { "id": 876, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 875, "name": "confirmationCount", "nodeType": "VariableDeclaration", "scope": 902, "src": "13970:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 874, "name": "uint", "nodeType": "ElementaryTypeName", "src": "13970:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "13969:24:1" }, "scope": 963, "src": "13870:290:1", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 961, "nodeType": "Block", "src": "14432:407:1", "statements": [ { "assignments": [ 911 ], "declarations": [ { "constant": false, "id": 911, "name": "confirmationCount", "nodeType": "VariableDeclaration", "scope": 962, "src": "14442:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 910, "name": "uint", "nodeType": "ElementaryTypeName", "src": "14442:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 915, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 913, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 904, "src": "14488:15:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 912, "name": "getConfirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 902, "src": "14467:20:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) view returns (uint256)" } }, "id": 914, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "14467:37:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "14442:62:1" }, { "expression": { "argumentTypes": null, "id": 922, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 916, "name": "confirmingOwners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 908, "src": "14514:16:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 920, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 911, "src": "14547:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 919, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "14533:13:1", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { "id": 917, "name": "address", "nodeType": "ElementaryTypeName", "src": "14537:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 918, "length": null, "nodeType": "ArrayTypeName", "src": "14537:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[] storage pointer" } } }, "id": 921, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "14533:32:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "src": "14514:51:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 923, "nodeType": "ExpressionStatement", "src": "14514:51:1" }, { "expression": { "argumentTypes": null, "id": 926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 924, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 911, "src": "14575:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 925, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "14595:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "14575:21:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 927, "nodeType": "ExpressionStatement", "src": "14575:21:1" }, { "body": { "id": 959, "nodeType": "Block", "src": "14647:186:1", "statements": [ { "condition": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 939, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 57, "src": "14665:11:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", "typeString": "mapping(address => mapping(bytes32 => bool))" } }, "id": 943, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 940, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "14677:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 942, "indexExpression": { "argumentTypes": null, "id": 941, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 929, "src": "14684:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14677:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14665:22:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, "id": 945, "indexExpression": { "argumentTypes": null, "id": 944, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 904, "src": "14688:15:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14665:39:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 958, "nodeType": "IfStatement", "src": "14661:162:1", "trueBody": { "id": 957, "nodeType": "Block", "src": "14706:117:1", "statements": [ { "expression": { "argumentTypes": null, "id": 952, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 946, "name": "confirmingOwners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 908, "src": "14724:16:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 948, "indexExpression": { "argumentTypes": null, "id": 947, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 911, "src": "14741:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "14724:35:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 949, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "14762:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 951, "indexExpression": { "argumentTypes": null, "id": 950, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 929, "src": "14769:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14762:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "14724:47:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 953, "nodeType": "ExpressionStatement", "src": "14724:47:1" }, { "expression": { "argumentTypes": null, "id": 955, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "14789:19:1", "subExpression": { "argumentTypes": null, "id": 954, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 911, "src": "14789:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 956, "nodeType": "ExpressionStatement", "src": "14789:19:1" } ] } } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 935, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 932, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 929, "src": "14623:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 933, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, "src": "14627:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 934, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "14627:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "14623:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 960, "initializationExpression": { "assignments": [ 929 ], "declarations": [ { "constant": false, "id": 929, "name": "i", "nodeType": "VariableDeclaration", "scope": 962, "src": "14611:6:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 928, "name": "uint", "nodeType": "ElementaryTypeName", "src": "14611:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 931, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 930, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "14620:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "14611:10:1" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 937, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "14642:3:1", "subExpression": { "argumentTypes": null, "id": 936, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 929, "src": "14642:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 938, "nodeType": "ExpressionStatement", "src": "14642:3:1" }, "nodeType": "ForStatement", "src": "14606:227:1" } ] }, "id": 962, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "getConfirmingOwners", "nodeType": "FunctionDefinition", "parameters": { "id": 905, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 904, "name": "transactionHash", "nodeType": "VariableDeclaration", "scope": 962, "src": "14330:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 903, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "14330:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "src": "14329:25:1" }, "payable": false, "returnParameters": { "id": 909, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 908, "name": "confirmingOwners", "nodeType": "VariableDeclaration", "scope": 962, "src": "14400:26:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" }, "typeName": { "baseType": { "id": 906, "name": "address", "nodeType": "ElementaryTypeName", "src": "14400:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 907, "length": null, "nodeType": "ArrayTypeName", "src": "14400:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[] storage pointer" } }, "value": null, "visibility": "internal" } ], "src": "14399:28:1" }, "scope": 963, "src": "14301:538:1", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], "scope": 964, "src": "218:14623:1" } ], "src": "0:14842:1" }, "compiler": { "name": "solc", "version": "0.4.19+commit.c4cbbb05.Emscripten.clang" }, "networks": { "4": { "events": {}, "links": {}, "address": "0x90bbec32c6d045b37b2ee32a2bbbef640b3972d1", "transactionHash": "0x2f6d1570cc556eef41a2d5e6d0410188979b61cbd580084cc7451a5776009204" }, "42": { "events": {}, "links": {}, "address": "0xaefa715af8a64d96f8619daa663fd72d78a0bf28", "transactionHash": "0x13a8bc9539b1b6652ad74f4b3cbe2ec19d48cbbe578b7496e95379e12aca1862" }, "1525342778744": { "events": {}, "links": {}, "address": "0x84c8db395337da2e3d4fb3e26af6bf35739d49b8", "transactionHash": "0x5b64197eda9ffa97845a6a77ff7bfb134b37c81fa74b3eef652bffbcd6879f6a" }, "1525789101965": { "events": {}, "links": {}, "address": "0x6ad761ab330a930f611c0a19226e39ae5da5122d", "transactionHash": "0x2030f160032d1cea96610c0485dc0fc03426ab66de7f3582cd5fd02a60b14f52" } }, "schemaVersion": "2.0.0", "updatedAt": "2018-05-08T14:18:44.047Z" }